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

Projekt bazy danych:klucz złożony a klucz podstawowy z jedną kolumną

Wygląda na to, że zbierasz dane do książki telefonicznej. Czy jesteś? Dlaczego stany są dla Ciebie ważne? Odpowiedź na to pytanie prawdopodobnie określi, który projekt bazy danych będzie dla Ciebie najlepszy.

Możesz pomyśleć, że to oczywiste, czym jest miasto. To nie jest. To zależy od tego, co zamierzasz zrobić z danymi. W USA istnieje taka jednostka o nazwie MSA (Metropolitan Statistical Area). Kansas City MSA obejmuje zarówno Kansas City, Kansas, jak i Kansas City w stanie Missouri. To, czy jednostka MSA ma sens, czy nie, zależy od zamierzonego wykorzystania danych. Jeśli używasz numerów kierunkowych w USA do określenia miast, otrzymasz zupełnie inną grupę niż MSA. Ponownie, zależy to od tego, co zamierzasz zrobić z danymi.

Ogólnie rzecz biorąc, ilekroć załamują się hierarchiczne wzorce podziałów politycznych, najogólniejszym rozwiązaniem jest rozważenie relacji „wielu do wielu”. Rozwiązujesz ten problem w ten sam sposób, w jaki rozwiązujesz inne problemy typu „wiele do wielu”. Tworząc nową tabelę z dwoma kluczami obcymi. W tym przypadku klucze obce to IdAreacode i IdStates.

Teraz możesz mieć jeden kod arecode w wielu stanach i jeden stan obejmujący wiele numerów kierunkowych. Wydaje się, że wstyd jest zaakceptować ten dodatkowy koszt, aby pokryć tylko jeden wyjątek. Czy wiesz, czy wyjątek, który odkryłeś, to tylko wierzchołek góry lodowej, a takich wyjątków jest wiele?



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Podziel ciągi za pomocą mysql

  2. Wstaw bieżącą datę/godzinę za pomocą now() w polu za pomocą MySQL/PHP

  3. Przygotowana instrukcja Mysqli (zapobieganie wstrzykiwaniu SQL)

  4. Porównanie między wtyczką MySQL Clone a Xtrabackup

  5. Kiedy mam wywołać bind_param, jeśli używam przygotowanych instrukcji MySQLi w pętli?