Часто, когда мне нужно сохранить системные свойства, такие как информация администратора, версии и т. Д., Я использую плоский файл (database.properties, init.properties и т. Д.). Это кажется распространенным в других программах, которые я вижу и использую ежедневно.
Иногда плоский файл не идеален по ряду причин. Развертывание веб-приложения для многочисленных клиентов часто имеет ограничения. В этих случаях я использую таблицу базы данных для хранения информации. Например, допустим, у меня есть некоторые административные данные, которые я хочу сохранить, и, возможно, некоторые особенности моей среды. Я мог бы сделать что-то вроде этого:
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"
Я понимаю, что это нарушает типизацию SQL и позволяет мне хранить все виды типов в виде строк. Это хорошая практика или я поступил неправильно?
Если нет, каким образом я должен хранить информацию такого типа?