我正在尝试为我的应用程序建模配置表,我想就如何为配置值存储多个值发表意见。
例如,如何存储可用的语言?如何存储允许的文件扩展名等?
我希望在我的表key
中有一个字段value
和一个字段configuration
,但我有多种方法来存储该值:
1,4,9,42
key
但不同values
的多行。我不知道如何才能使这个工作,它将是非常不可用的...... 感谢您的帮助:)
答案 0 :(得分:4)
除了讨论这是否是一个好主意之外,很多人都这样做。一个非常常见的方法是让一个' blob'一个'配置'以JSON格式表和存储您的数据。您将自己序列化并反序列化,但这没什么大不了的。
答案 1 :(得分:1)
如果您想将配置存储在数据库中(不推荐,但如果您的应用程序有很多实例,则有意义) - 让我们分析一下:
使用相同的密钥存储多行的方法 - 让我们忘掉它;)
存储由,
分隔的多个值 - 如果您需要使用昏迷值存储值(例如:10,000
为一万个),则会产生一些问题。然后,您需要修改它以存储像"
封装的CSV文件中的值。
最好的想法 - 存储序列化的PHP值。由于您的应用程序是用PHP编写的,因此它是最好的 native 方法。使用这种方法就像:
$ configValue =反序列化(getMyValueFromDb("的myKey&#34)); //或在更改后保存 $ configValue ="新值&#34 ;; saveMyValueToDb(序列化($ configValue));
此外 - PHP serialize
和unserialize
会关注转义值并将其正确转换,因此您不必担心某些错误分隔字符串与{{1}错误地分开}。