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

Typ danych Enum a tabela danych w MySQL?

Ogólnie rzecz biorąc, ENUM typy nie są przeznaczone do użycia w takich sytuacjach. Dzieje się tak szczególnie w przypadku, gdy zamierzasz zapewnić elastyczność dodawania lub usuwania ról w przyszłości. Jedyny sposób na zmianę wartości ENUM jest z ALTER TABLE , podczas gdy definiowanie ról we własnej tabeli będzie wymagało po prostu nowego wiersza w roles tabela.

Ponadto za pomocą roles tabela umożliwia dodanie dodatkowych kolumn, aby lepiej zdefiniować rolę, np. description pole, które zaproponowałeś w Opcji 1. Nie jest to możliwe, jeśli użyjesz ENUM wpisz jak w Opcji 2.

Osobiście nie wybrałbym ENUM w tych scenariuszach. Może widzę, że są używane w kolumnach o absolutnie skończonym zbiorze wartości, takich jak {Spades, Hearts, Diamonds, Clubs} zdefiniować kolor karty, ale nie w przypadkach takich jak ten, o którym mowa, ze względu na wspomniane wcześniej wady.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Zmiana kolumny w MySQL z int na double?

  2. Left Join nie zwraca wszystkich wierszy

  3. Łączenie się z MySQL na zdalnym serwerze z Pythona

  4. Używanie skryptu powłoki do wstawiania danych do zdalnej bazy danych MYSQL

  5. uzyskiwanie mysql_insert_id() podczas używania ON DUPLICATE KEY UPDATE w PHP