通常,当我需要存储管理信息、版本等系统属性时,我会使用平面文件(database.properties、init.properties 等)。这在我每天看到和使用的其他程序中似乎很常见。
有时,出于多种原因,平面文件并不理想。将 Web 应用程序部署到众多客户端通常会遇到一些限制。在这些情况下,我使用数据库表来保存信息。例如,假设我有一些想要保存的管理数据,也许还有一些关于我的环境的细节。我可能会做这样的事情:
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 的输入,并允许我将各种类型存储为字符串。这是一个好的做法还是我一直在做错误的事情?
如果没有,我应该以什么方式存储此类信息?