存参数配置表是 key-value 键值对的多条记录好,还是就一条,value 存json 字符串比较好呢?比如会接入多家短信提供商,每个账号有多个字段
存参数配置表是 key-value 键值对的多条记录好,还是就一条,value 存json 字符串比较好呢?比如会接入多家短信提供商,每个账号有多个字段
根据查询需要。如果你每次获取的是提供商的全部配置,那么设计为 key, value 两个字段就好,value 字段存为 JSON 格式;如果配置项非常庞杂,而且需要对细节进行查询,那么建议对这些细节独立建模和建表。
系统配置一般都是加载到内存使用的,也不会存在太多的并发读写处理,所以这部分配置放在哪里都可以,常见的有放在应用目录下、系统特定位置(比如 Windows 注册表,Linux etc 目录等),也可以放数据库。
放目录下,就是文件存储的情况,多数时候是用 JSON 或 XML。
放数据库的情况,可能是应用数据库,也可能是单独的 SQLite。在配置项特别多的情况下,可能放数据库比较好打理,然后在设计上也有好多种方式
如果只是系统配置,不分级(比如用户级)的,按 key-value 存就行。如果是分级的,可以加 level/user 字段来区分,也可以直接就以 level/user 为键来存大文本(JSON/XML)。
需要频繁读/写的情况存数据库可能会好一些,这处情况配置已经可以看作是业务数据了。
就是普通情况下的系统配置,使哪种方式在实际使用上并没有太大的区别。
Java 用得不多,但是在 C#/.NET 里基本上都是用的 JSON 文件来保存的配置。如果有写需求,保存 JSON 文件也不是很难的事情。实际上 .NET 的 Configuration 兼容多种存储方式,只不过最常用的也就是命令行参数 + appsettings.json(可以根据环境配 appsettings.Develop.json 和 appsettings.Production.json,还可以自己扩展 appsettings.Local.json 等)
1 回答2.5k 阅读✓ 已解决
2 回答2.2k 阅读
3 回答2.4k 阅读
1 回答2.4k 阅读
1 回答1k 阅读✓ 已解决
1 回答893 阅读✓ 已解决
1 回答663 阅读✓ 已解决
这个问题意义不大。除非你的配置表数据量很大
怎么存都行,说白了就是个持久化的问题。
而且在读取时,肯定要加缓存的呀,总不能一直读库吧。加完缓存后,如何存储的话,还有那么重要吗?