[英]Storing multiple values in single SQL row
我正在嘗試為我的應用程序建模一個配置表,我想就如何為配置值存儲多個值征詢您的意見。
例如,如何存儲可用的語言? 如何存儲允許的文件擴展名等?
我想在表configuration
有一個字段key
和一個字段value
,但是我有多種存儲值的方法:
1,4,9,42
key
但values
不同的多行。 我不知道如何使它正常工作,這將非常無法使用... 謝謝你的幫助 :)
撇開這是否一個好主意的討論,許多人都這樣做。 一種非常常見的方法是在“配置”表上具有“ blob”字段,並以JSON格式存儲數據。 您將自己進行序列化和反序列化,但這沒什么大不了的。
如果要將配置存儲在數據庫中( 不建議這樣做,但是如果您有很多應用程序實例,這是有道理的)-讓我們對其進行分析:
用相同的鍵存儲多行的方法-算了吧;)
存儲許多用,
分隔的值-如果您需要用逗號存儲值(例如: 10,000
等於10,000
) ,
那么這將引起一些問題。 然后,您需要對其進行修改以存儲值,例如以"
封裝的CSV文件中的值。
最好的主意- 存儲序列化的PHP值 。 由於您的應用是用PHP編寫的,因此這將是最好的本機方法。 使用這種方法將很容易:
$ configValue = unserialize(getMyValueFromDb(“ myKey”)); //或在更改后保存$ configValue =“ new value”; saveMyValueToDb(serialize($ configValue));
另外-PHP serialize
和反unserialize
要注意轉義值並正確轉換它,因此您不必擔心用逗號分隔的逗號分隔字符串會被explode
錯誤地分割。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.