Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Projekt bazy danych Mysql dla wielu adresów klienta i adresu domyślnego

Moim zdaniem sprawiasz, że jest to zbyt skomplikowane. Nie ma potrzeby, aby schemat adresu był tak nadmiernie znormalizowany. Większość systemów, które widziałem, które obsługują wiele adresów klientów, ma tabelę klientów taką jak twoja, a następnie tabelę adresów w następujący sposób:

 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 jest kluczem obcym dla customer stół. Klucz podstawowy jest złożony z (customer_id , address_ordinal ). primary kolumna jest true jeśli adres jest adresem podstawowym.

Jeśli chodzi o Twoje pytanie dotyczące dostawców, możesz utworzyć wspólną tabelę o nazwie „kontakty” i podać zarówno swoim klientom, jak i dostawcom identyfikatory contact_id.

Jeśli twój system zawiera tabelę referencyjną (na przykład coś, co kupujesz od dostawcy danych) zawierającą wiersze (kod pocztowy, miejscowość, województwo), możesz jej użyć do wypełnienia tabeli adresów. Ale powinieneś unikać zmuszania swoich adresów do zawierania tylko zakodowanych na stałe kodów pocztowych:te tabele referencyjne bardzo szybko się dezaktualizują.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wstaw listę wartości nie pasuje do listy kolumn:1136 Liczba kolumn nie odpowiada liczbie wartości

  2. Jak utrzymujesz kontrolę wersji swojej struktury bazy danych?

  3. Podstawowa musi zawierać wszystkie kolumny w błędzie lokalizacji partycjonowania tabeli?

  4. Procedura składowana mysql jest 20 razy wolniejsza niż standardowe zapytanie

  5. Nazwa schematu MySQL z myślnikiem nie pozwala mi na wykonanie zapytania wiersza poleceń