我正在尝试找出在 SQL 表中存储包含详细信息的项目数组的最佳方法。 我有一个用户帐户数据库。用户有多个输入字段来输入多个详细信息,例如:
___ : ______ +(get more multiple field field)
用户可以输入任何详细信息,例如
Output1 : Output2
Mobile : 2455...
email : sdf
city : dfs
Other : sf
平均而言,用户会使用大约 20 个选项
由于我不知道这些字段(手机、电子邮件等),因此我必须将 Output1
字段与答案字段 (output2
) 一起存储。
我将拥有非常庞大的用户群,因此我认为为每个用户创建单独的表并不是更好。
有什么方法可以在有限或单列中存储和获取详细信息。
最佳答案
由于属性名和属性值都来自用户,所以采用典型的三表模型来保存多对多关系有点大材小用。
我只是将用户及其属性保存在两个单独的表中:
+---------+-----------+--------------+
| user_id | user_name | user_email |
+---------+-----------+--------------+
| 1001 | John | <a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="a4cecbcccae4c0cbc18ac7cbc9" rel="noreferrer noopener nofollow">[email protected]</a> |
+---------+-----------+--------------+
| 1002 | Tim | <a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="2054494d60444f450e434f4d" rel="noreferrer noopener nofollow">[email protected]</a> |
+---------+-----------+--------------+
+----------+-----------+--------------+--------------+
| field_id | user_id | field_name | field_value |
+----------+-----------+--------------+--------------+
| 1 | 1001 | Option1 | Option2 |
+----------+-----------+--------------+--------------+
| 2 | 1001 | Mobile | 2345656565 |
+----------+-----------+--------------+--------------+
| 3 | 1001 | city | dfs |
+----------+-----------+--------------+--------------+
| 4 | 1002 | Other | something |
+----------+-----------+--------------+--------------+
可能还有一些用于排序、标记等的附加列。
关于php - 在 SQL 表中存储包含详细信息的项目数组的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20599962/