-
Ideen i databasedesign er at holde hvert dataelement adskilt. Og hvert element har sin egen datatype, begrænsninger og regler. Det
c0002er ikke ét felt, men to. Det samme medXXXnnneller hvad som helst. Det er forkert, og det vil i høj grad begrænse din mulighed for at bruge dataene og bruge databasefunktioner og -faciliteter.Del det op i to diskrete dataelementer:
column_1 CHAR(1)
column_2 INTEGERIndstil derefter AUTOINCREMENT på
column_2Og ja, din primære nøgle kan være
(column_1, column_2), så du har ikke mistet betydningenc0002har til dig. -
Placer aldrig leverandører og kunder (uanset hvad "c" og "s" betyder) i samme tabel. Hvis du gør det, vil du ikke have en databasetabel, du vil have en flad fil. Og forskellige problemer og begrænsninger som følge af det.
Det betyder, Normaliser dataene. Du vil ende med:
- én tabel for
PersonellerOrganisationindeholdende de almindelige data (Name, Address...) - én tabel for
Customerindeholdende kundespecifikke data (CreditLimit...) - én tabel for
Supplierindeholdende leverandørspecifikke data (PaymentTerms...) - ingen tvetydige eller valgfrie kolonner, derfor ingen nuller
- ingen begrænsninger for brug eller SQL-funktioner
.
Og når du skal tilføje kolonner, gør du det kun, hvor det er påkrævet, uden at det påvirker alle de andre sager i den flade fil. Effektens omfang er begrænset til ændringens omfang.
- én tabel for