A menudo, cuando necesito almacenar propiedades del sistema como información de administrador, versiones, etc., utilizo un archivo plano (database.properties, init.properties, etc.). Esto parece común en otros programas que veo y uso a diario.¿Es una mala idea tener una tabla de propiedades en una base de datos?
A veces, un archivo plano no es ideal por una serie de razones. La implementación de una aplicación web para numerosos clientes a menudo tiene limitaciones. En estos casos, utilizo una tabla de base de datos para contener la información. Por ejemplo, digamos que tengo algunos datos de administrador que deseo guardar, y tal vez algunos detalles sobre mi entorno. Yo podría hacer algo como esto:
property_entry_table
[id, scope, refId, propertyName, propertyValue, propertyType]
1, 0, 1, "DB_VER", "2.3.0", "FLOAT"
2, 0, 1, "LICENCE", "88475", "INT"
3, 0, 1, "TOP_PROJECT", "1", "INT"
4, 0, 1, "SHOW_WELCOME", "F", "BOOL"
5, 0, 1, "SMTP_AUTH", "SSH", "STRING"
6, 1, 1, "ADMIN_ALERTS", "T", "BOOL"
Comprendo que esto rompe la tipificación de SQL y me permite almacenar todo tipo de tipos como cadenas. ¿Es esta una buena práctica o he estado haciendo esto de la manera incorrecta?
Si no, ¿de qué forma debo almacenar este tipo de información?
siempre que sea almacenamiento para algunas propiedades del sistema, etc., está bien. ¡No entiendo la idea de almacenar ** todos ** sus datos de esta manera! Vea aquí para una discusión, por qué: http://www.simple-talk.com/sql/database-administration/five-simple--database-design-errors-you-should-avoid/ –
también, quizás el impulso para esta pregunta, ¿por qué me rechazaron aquí ?: http://stackoverflow.com/questions/2300356/using-a-single-row-configuration-table-in-sql-server-database-bad-idea/2300450#2300450 – Stephano