sql >> Databáze >  >> RDS >> Mysql

Návrh databáze Mysql pro více adres zákazníka a výchozí adresu

Podle mého názoru to děláte příliš složité. Není nutné, aby bylo vaše schéma adres příliš normalizováno. Většina systémů, které jsem viděl a které zpracovávají více zákaznických adres, má tabulku zákazníků, jako je ta vaše, a poté má tabulku adres takto:

 customer_id
 address_ordinal  (small number for each customer: 0,1,2,3 etc).
 primary    (boolean)
 address_1
 address_2
 locality   (city, village, etc)
 province   (state, etc)
 postcode   (zip, postcode etc)
 country

customer_id je cizí klíč pro customer stůl. Primární klíč je složen z (customer_id , address_ordinal ). primary sloupec je true pokud je adresa primární.

Pokud jde o vaši otázku ohledně dodavatelů, možná budete chtít vytvořit společnou tabulku nazvanou „kontakty“ a přidělit zákazníkům i dodavatelům kontaktní_id.

Pokud váš systém obsahuje referenční tabulku (možná něco, co zakoupíte od dodavatele dat) obsahující řádky (PSČ, lokalita, provincie), můžete ji použít k naplnění tabulky adres. Měli byste se však vyvarovat toho, aby vaše adresy obsahovaly pouze pevně zakódovaná PSČ:tyto referenční tabulky velmi rychle zastarají.



  1. SQL Server Lock Eskalace

  2. Připojení softwaru IRI k Oracle

  3. Měření výkonu databáze pod tlakem

  4. session_start vyvolá závažnou chybu