-
Die Idee beim Datenbankdesign besteht darin, jedes Datenelement getrennt zu halten. Und jedes Element hat seinen eigenen Datentyp, Einschränkungen und Regeln. Das
c0002ist nicht ein Feld, sondern zwei. Dasselbe gilt fürXXXnnnoder Wasauchimmer. Es ist falsch , und es wird Ihre Fähigkeit, die Daten zu verwenden und Datenbankfunktionen und -einrichtungen zu nutzen, stark einschränken.Teilen Sie es in zwei separate Datenelemente auf:
column_1 CHAR(1)
column_2 INTEGERSetzen Sie dann AUTOINCREMENT auf
column_2Und ja, Ihr Primärschlüssel kann
(column_1, column_2)sein , Sie haben also keine Bedeutung verlorenc0002hat für Sie. -
Platzieren Sie niemals Lieferanten und Kunden (was auch immer "c" und "s" bedeutet) in derselben Tabelle. Wenn Sie das tun, haben Sie keine Datenbanktabelle, sondern eine flache Datei. Und verschiedene Probleme und Einschränkungen, die daraus resultieren.
Das heißt, normalisieren Sie die Daten. Am Ende erhalten Sie:
- eine Tabelle für
PersonoderOrganisationmit den gemeinsamen Daten (Name, Address...) - eine Tabelle für
Customermit kundenspezifischen Daten (CreditLimit...) - eine Tabelle für
Suppliermit lieferantenspezifischen Daten (PaymentTerms...) - keine mehrdeutigen oder optionalen Spalten, daher keine Nullen
- keine Nutzungsbeschränkungen oder SQL-Funktionen
.
Und wenn Sie Spalten hinzufügen müssen, tun Sie dies nur dort, wo es erforderlich ist, ohne dass sich dies auf alle anderen Prozesse der Flatfile auswirkt. Der Wirkungsbereich ist auf den Umfang der Änderung beschränkt.
- eine Tabelle für