簡體   English   中英

在單個SQL行中存儲多個值

[英]Storing multiple values in single SQL row

我正在嘗試為我的應用程序建模一個配置表,我想就如何為配置值存儲多個值征詢您的意見。

例如,如何存儲可用的語言? 如何存儲允許的文件擴展名等?

我想在表configuration有一個字段key和一個字段value ,但是我有多種存儲值的方法:

  • 序列化一個PHP數組並將其存儲在一行中,
  • 存儲所有用逗號分隔的值,例如1,4,9,42
  • 具有具有相同keyvalues不同的多行。 我不知道如何使它正常工作,這將非常無法使用...

謝謝你的幫助 :)

撇開這是否一個好主意的討論,許多人都這樣做。 一種非常常見的方法是在“配置”表上具有“ blob”字段,並以JSON格式存儲數據。 您將自己進行序列化和反序列化,但這沒什么大不了的。

如果要將配置存儲在數據庫中( 不建議這樣做,但是如果您有很多應用程序實例,這是有道理的)-讓我們對其進行分析:

  1. 用相同的鍵存儲多行的方法-算了吧;)

  2. 存儲許多用,分隔的值-如果您需要用逗號存儲值(例如: 10,000等於10,000,那么這將引起一些問題。 然后,您需要對其進行修改以存儲值,例如以"封裝的CSV文件中的值。

  3. 最好的主意- 存儲序列化的PHP值 由於您的應用是用PHP編寫的,因此這將是最好的本機方法。 使用這種方法將很容易:

    $ configValue = unserialize(getMyValueFromDb(“ myKey”)); //或在更改后保存$ configValue =“ new value”; saveMyValueToDb(serialize($ configValue));

另外-PHP serialize和反unserialize要注意轉義值並正確轉換它,因此您不必擔心用逗號分隔的逗號分隔字符串會被explode錯誤地分割。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM