我正在使用PHP 5.3和MySQL 5.5进行开发。我的情况是这样的:
因此,为了存储动态字段,我创建了一个fields
表:
Fields:
field_id
group_id
field_name
field_type
其中包含每个组的字段名称和类型,然后我为其值创建了一个表:
Field_Values
user_id
field_id
field_value
但我想知道这是最好的方式吗?
如何为每个组创建单独的表?它有什么不好的后果吗? (因为我认为查询会更容易)或者还有其他有效的方法可以解决这个问题吗?
任何有用的信息或提示都将不胜感激。
答案 0 :(得分:1)
为什么不尝试将其视为文档存储?使用用户标识作为密钥,然后将字段存储为JSON(或XML)。然后,每个用户只有一个组,但字段可能是完全唯一的。
答案 1 :(得分:1)
我认为你走的是正确的道路。我可能也会这样做。
表:
group ( group_id ,group_name ,group_type ,... )
1 group1
2 group2
user ( user_id ,group_id ,user_name ,... )
1 1 a
2 1 b
3 2 c
I am assuming users of one group share the same set of fields but have their own field values
field ( field_id ,group_id ,field_name ,field_type, field_active )
1 1 field1
2 1 field2
3 2 field3
user_field_value ( field_value_id ,user_id, field_id ,field_value )
1 1 1 value1
2 1 2 value2
3 2 3 value3
从长远来看,为每个小组创建单独的表格不是一个好主意。