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

enum lub char(1) w MySQL

Żaden. Zwykle używałbyś tinyint z tabelą przeglądową

  • char(1) będzie nieco wolniejsze, ponieważ porównanie wykorzystuje sortowanie

  • zamieszanie:w miarę rozszerzania się do więcej niż A i P

  • użycie litery ogranicza Cię w miarę dodawania kolejnych typów. Zobacz ostatni punkt.

  • każdy system, który widziałem, ma więcej niż jednego klienta, np. raportowanie. A i P muszą być rozwiązane na Aktywne i Pasywne dla każdego kodu klienta

  • rozszerzalność:dodaj jeszcze jeden typ ("S" dla "Zawieszony"), możesz jeden wiersz do tabeli przeglądowej lub zmienić dużo kodu i ograniczeń. Twój kod klienta też

  • utrzymanie:logika jest w 3 miejscach:ograniczenie bazy danych, kod bazy danych i kod klienta. Dzięki odnośnikowi i kluczowi obcemu może znajdować się w jednym miejscu

  • Enum nie jest przenośny

Zaletą używania pojedynczej litery lub Enum

Uwaga:istnieje powiązane pytanie MySQL dotyczące Enums DBA.SE . Zaleca się użycie tam również tabeli przeglądowej.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Obsługa MySQL dla Pythona, który nie jest objęty licencjami podobnymi do GPL

  2. <textarea> i MYSQL do wyświetlania danych w php

  3. Jakieś dobre tutoriale dotyczące relacyjnych baz danych?

  4. Jak zabezpieczyć plik konfiguracyjny bazy danych w projekcie?

  5. Szukaj z wartością oddzieloną przecinkami mysql