我有一个各种类型的出版物网站(普通,类型1,类型2),每种类型都需要特殊数据。
我的问题是:
在数据库中存储这些“特殊数据”的最佳方法是什么?
1)为每种类型的出版物创建一个表格
2)创建一个“posts_metadata”表,其中包含“post,key,value”列,并保存所有类型。
3)在“posts”表中创建“元数据”列,并使用JSON格式将“特殊数据”保存在其中。
4)在“posts”表中创建“元数据”列,并使用XML格式将“特殊数据”保存在其中。
您认为最有效和最实用的选择是什么?
编辑#1:
数据示例:
正常:without "special data"
类型1:
'trademark' => 'Volkswagen'
'model' => 'gol 1.6'
'color' => 'white'
'doors' => '3'
'kms' => '17000'
..etc..
类型2:
'color' => 'green'
'size' => '15x10'
'status' => 'new'
..etc..
...更多类型......
答案 0 :(得分:1)
如果您希望能够查询这些特殊数据字段,请选择选项2。
如果您只想要数据的存储选择选项3.根据数据的可能大小,我将为它创建一个额外的表,并根据您的mysql版本为列提供json-datatype,如果您需要验证等https://dev.mysql.com/doc/refman/5.7/en/json.html。
不要使用选项4,与json相比,xml会产生过多的开销,并且在这种情况下没有任何好处。