我的数据库结构:
t_data_fields
id | field_name | field_value
t_data
id | fields_id | name |
t_data中的每一行都有一些与t_data_fields表相关联的行。 我想知道是否可以将额外的field_name和field_value附加到原始的t_data行,而不是连接数据宽度data_fields并为每个数据条目获取多行。
所以,而不是:
id fields_id name field_name field_value
2 1 row2 color black
2 1 row2 brand DG
2 1 row2 type shirt
我想要这样的结果:
id fields_id name field_name field_value field_name field_value field_name field_value
2 1 row2 color black brand DG type shirt
我可以做第一个版本,我只是想知道是否有可能得到我喜欢的结果集
答案 0 :(得分:1)
您可以每次使用不同的别名重复加入表格,但它不能很好地扩展,并且不灵活。
根据您在此处所做的事情来判断,您更清楚地定义模型/架构会更有意义,因此任何给定的产品都具有称为color
的特定属性,{{1 },brand
,size
等,并允许它们为NULL。然后你有一个非常干净的行,包含你需要的所有数据,并且你正在使用MySQL。不要担心有很多专栏:MySQL有50列很好,尽管它不太人性化(警告:有一个行长度限制因此请注意,如果你有很多长的varchars)。 / p>
假设您需要任意属性,另一个选项是将编码在数据库中的TEXT字段中的数据存储在一个列中(如果您使用此路径,我建议使用JSON)。但是,以这种方式对数据执行数据库操作要困难得多,所以肯定会有权衡。
答案 1 :(得分:0)