Frage

Ich versuche, einen Urteilsaufruf bei der Implementierung einer kleinen SQL Server '08-Datenbank implementieren zu lassen.

Ich übersetze eine Ausgabetextdatei einer flachen Datenbank aus einem alten COBOL-System in die oben genannte SQL Server-Datenbank. Es handelt sich um eine Datenbank mit Fahrzeug- und Immobilienkrediten, die durch die Kombination einer Kreditgeber-ID (eine siebenstellige Nummer), die Bankkontonummer (15 Ziffern) und "Kontosuffix" (zwei Ziffern) eindeutig identifiziert werden kann.

Ich gebe zu, ich bin ziemlich naiv, wenn es um die Datenbankverwaltung geht (um ehrlich zu sein, ich habe es bis zu meiner aktuellen Position nicht wirklich erledigt) und versuche festzustellen, welche der beiden Ansätze meine beste Option für die Implementierung eines sind Schlüssel, der in mehrere andere Tabellen indexiert wird:

1) Identifizieren Sie jedes Darlehen anhand eines dreispaltigen Schlüssels der oben genannten Werte, oder
2) Denormalisieren Sie die Daten, indem Sie eine "Schlüssel" -Säule implementieren, die eine 24-Charakter-Zeichenfolge ist, die die drei Werte kombiniert.

Die Denormalisierung ist hässlich, gewährt, aber ich kann nicht vorhersehen, dass Anomalien auftreten, da Kredite nicht zwischen Banken weitergegeben werden oder ihr Darlehensuffix ändern können. Eine Änderung dieser Werte ist garantiert ein anderes Konto.

Ein zusammengesetzter Schlüssel ist eleganter, aber ich habe ein paar Abhandlungen gelesen, was darauf hindeutet, dass es eine schlechte Sache ist.

Welche Option ist wahrscheinlich eine bessere Wahl und vor allem, warum?

War es hilfreich?

Lösung

Ich würde einen autogenerierten Ersatzschlüssel verwenden und dann einen eindeutigen Index auf den natürlichen Schlüssel setzen. Auf diese Weise ändert sich der natürliche Schlüssel (und es könnte möglicherweise nur an einem Ort geändert werden, wenn die AA Bank von einer anderen Bank aufgekauft wurde). Die wichtigste Sache bei der Verwendung eines Ersatzschlüssels besteht darin, die Einzigartigkeit des natürlichen Schlüssels zu gewährleisten, wenn ein Exiust und der eindeutige Index dies tun.

Andere Tipps

Wenn es sich um Referenzdaten handelt, die nicht häufig aktualisiert werden, sollte die Verwendung des mehrteiligen Schlüssels in Ordnung sein.

Wenn es sich um hochwertige Transaktionsdaten handelt, fügen Sie einen Ersatzschlüssel (INT-Identität, Cluster-Primärschlüssel) hinzu und machen Sie den dreiteiligen Schlüssel zu einem alternativen Schlüssel.

Ich würde überhaupt nicht vorschlagen, Option 2 zu implementieren.

Ich würde vorschlagen, nur einen numerischen Ersatzschlüssel für automatische Inkremente zu verwenden. Warum müsste es ein Mashup der anderen drei "Schlüssel" -Säulen sein?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top