ejemplo - manual de mysql 6.0 en español pdf
¿Cómo debo estructurar mi tabla de configuración con MySQL? (4)
Como de costumbre, depende. La solución 1 es más simple. Sol # 2 se integra fácilmente con los ORM, pero puede llegar a limitaciones de tamaño de fila de base de datos. Google para OTLT (como en el problema de One True Lookup Table) ¿Cuántos ajustes tiene (¿pocos? ¿Docenas? ¿Cientos?) ¿Con qué frecuencia los necesitará?
¿Cuál es la mejor manera de estructurar una tabla MySQL para almacenar configuraciones de administrador?
¿Me gusta esto?
Setting _|_ Value
setting1 | a
setting2 | b
setting3 | c
setting4 | d
setting5 | e
¿O así?
|--------|_setting1_|_setting2_|_setting3_|_setting4_|_setting5_|
Settings | a | b | c | d | e |
O tal vez de otra manera?
Considere la primera opción ( Setting
, Value
) como columnas. Pero también considere agregar metacolumnas adicionales, como Description
(sería útil si tiene una gran cantidad de configuraciones ambiguas), LastUpdated
PreviousValue
, LastUpdated
, UpdatedBy
, etc.
Nombre de la tabla = ''configuración''
name | varchar <-- primary key
value | varchar
Entonces puedes consultar así:
SELECT * FROM settings WHERE name = ''default_printer'';
Esta opción es agradable y fácil y funcionará bien con 10, o 10,000 configuraciones. Con la otra opción, tendrá que agregar una nueva columna, lo que sería una pérdida de tiempo completamente inútil.
Editar
Después de tu primer comentario, puedes elegir varios valores como este:
SELECT * FROM settings WHERE name IN (''default_printer'',''default_page_size'');
:-)
Su primer ejemplo, pares de nombre-valor o EAV, permite mucha más flexibilidad.
Echa un vistazo a la página wiki sobre el modelado de EAV en bases de datos .