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

Czy używanie znaku jako klucza podstawowego/obcego jest niedopuszczalne?

Wydajność nie jest tak naprawdę głównym problemem, przynajmniej nie dla mnie. Problem dotyczy raczej kluczy zastępczych i kluczy naturalnych.

Kody krajów nie są statyczne. Mogą i się zmieniają. Kraje zmieniają nazwy (np. Etiopia na Erytreę). Powstają (np. rozpad Jugosławii czy Związku Sowieckiego) i przestają istnieć (np. Niemcy Zachodnie i Wschodnie). Kiedy tak się dzieje, zmienia się kod normy ISO.

Więcej w Zmiany nazw od 1990 r.:Kraje, miasta i nie tylko

Klucze zastępcze wydają się być lepsze, ponieważ kiedy takie zdarzenia się zdarzają, klucze się nie zmieniają, zmieniają się tylko kolumny w tabeli referencyjnej.

Z tego powodu byłbym bardziej skłonny tworzyć tabele krajów i walut z kluczem podstawowym int.

Biorąc to pod uwagę, pola kluczowe varchar będą zajmowały więcej miejsca i mają pewne wady wydajności, które prawdopodobnie nie będą stanowić problemu, chyba że wykonujesz ogromną liczbę zapytań.

Aby uzyskać kompletność, możesz zapoznać się z Błędy tworzenia bazy danych popełniane przez programistów aplikacji .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. transakcja mysql - wycofaj każdy wyjątek

  2. Jak wyświetlić wartości wierszy jako kolumny w MySQL?

  3. Pięć najlepszych aplikacji umożliwiających dostęp do serwerów MySQL/MariaDB

  4. MySQL Czy istnieje limit InnerJoin?

  5. Jak mogę przyspieszyć zapytanie MySQL z dużym przesunięciem w klauzuli LIMIT?