sql >> Database >  >> RDS >> Mysql

Enum datatype versus tabel met gegevens in MySQL?

In het algemeen ENUM typen zijn niet bedoeld om in deze situaties te worden gebruikt. Dit is met name het geval als u van plan bent in de toekomst te voorzien in de flexibiliteit om rollen toe te voegen of te verwijderen. De enige manier om de waarden van een ENUM te veranderen is met een ALTER TABLE , terwijl het definiëren van de rollen in hun eigen tabel eenvoudigweg een nieuwe rij vereist in de roles tafel.

Bovendien, met behulp van de roles tabel kunt u extra kolommen toevoegen om de rol beter te definiëren, zoals de description veld dat u heeft voorgesteld in optie 1. Dit is niet mogelijk als u een ENUM . zou gebruiken typ zoals in optie 2.

Persoonlijk zou ik niet kiezen voor een ENUM in deze scenario's. Misschien zie ik ze worden gebruikt voor kolommen met een absoluut eindige reeks waarden, zoals {Spades, Hearts, Diamonds, Clubs} om de kleur van een kaart te definiëren, maar niet in gevallen zoals die in kwestie, vanwege de eerder genoemde nadelen.



  1. MySql:Multiple Left Join geeft verkeerde output

  2. Log querytijd in SQLite op Android

  3. Rails 3.1:Postgres opvragen voor records binnen een tijdsbereik

  4. Wat is SQL Server? (Definitie, versies, edities)