-
Myšlenkou návrhu databáze je ponechat každý datový prvek oddělený. A každý prvek má svůj vlastní datový typ, omezení a pravidla. To
c0002
není jedno pole, ale dvě. Totéž sXXXnnn
nebo cokoli jiného. Je to nesprávné a vážně to omezí vaši schopnost používat data a používat databázové funkce a zařízení.Rozdělte jej na dvě samostatné datové položky:
column_1 CHAR(1)
column_2 INTEGERPoté nastavte AUTOINCREMENT na
column_2
A ano, váš primární klíč může být
(column_1, column_2)
, takže jste neztratili žádný významc0002
má pro vás. -
Nikdy neumisťujte dodavatele a zákazníky (bez ohledu na to, co znamená „c“ a „s“) do stejné tabulky. Pokud to uděláte, nebudete mít databázovou tabulku, budete mít plochý soubor. A z toho plynoucí různé problémy a omezení.
To znamená, normalizovat data. Skončíte s:
- jedna tabulka pro
Person
neboOrganisation
obsahující společná data (Name, Address
...) - jedna tabulka pro
Customer
obsahující údaje specifické pro zákazníka (CreditLimit
...) - jeden stůl pro
Supplier
obsahující údaje specifické pro dodavatele (PaymentTerms
...) - žádné nejednoznačné nebo volitelné sloupce, tudíž žádné hodnoty Null
- žádná omezení použití nebo funkcí SQL
.
A když potřebujete přidat sloupce, uděláte to pouze tam, kde je to požadováno, aniž by to ovlivnilo všechny ostatní problémy plochého souboru. Rozsah účinku je omezen na rozsah změn.
- jedna tabulka pro