Mysql
 sql >> база данни >  >> RDS >> Mysql

enum или char(1) в MySQL

Нито едното. Обикновено използвате tinyint с таблица за търсене

  • char(1) ще бъде малко по-бавен, защото сравнението използва съпоставяне

  • объркване:Когато разширите до повече от A и P

  • използването на буква ви ограничава, докато добавяте още типове. Вижте последната точка.

  • всяка система, която съм виждал, има повече от един клиент, например отчитане. A и P трябва да бъдат разрешени на Активен и Пасивен за всеки клиентски код

  • разширяемост:добавете още един тип („S“ за „Suspended“), можете да един ред към таблица за справка или да промените много код и ограничения. И вашият клиентски код също

  • поддръжка:логиката е на 3 места:ограничение на базата данни, код на база данни и клиентски код. С търсене и външен ключ може да бъде на едно място

  • Enum не е преносим

Положителната страна на използването на една буква или Enum

Забележка:има свързан въпрос за DBA.SE MySQL въпрос относно Enums . Препоръката е да използвате и справочна таблица и там.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Rails:Показване на страницата за поддръжка, ако няма налична връзка с база данни

  2. Получавате броя на засегнатите редове в изявление за актуализиране на MySQL?

  3. MySQL REPLACE в автоматично увеличен ред

  4. Как да поправите грешка при изпълнение на DDL промени в таблицата, изпускане на външния ключ FKg0mkvgsqn8584qoql6a2rxheq чрез JDBC изявление

  5. Създаване на kml файл от mysql база данни с php