将 json 数据存储在 affiliate_phone_id
字段中或使用单独的表对其进行规范化更好?
例如:
mysql> select * from phone;
+----+----------+-------------+-------------------------------------------------------------------------------------------+
| id | name | description | affiliate_phone_id |
+----+----------+-------------+-------------------------------------------------------------------------------------------+
| 32 | iPhone 5 | faster CPU | [{"affiliate_id":2,"affiliate_phone_id":123},{"affiliate_id":3,"affiliate_phone_id":222}] |
+----+----------+-------------+-------------------------------------------------------------------------------------------+
以上数据显示,每个零售商都有自己的电话号码,例如:
公司 2 (affiliate_id = 2),电话 ID 为 123
或者最好做这样的单独的表:
mysql> select * from phone_affiliate;
+----+----------+--------------+--------------------+
| id | phone_id | affiliate_id | affiliate_phone_id |
+----+----------+--------------+--------------------+
| 1 | 32 | 2 | 123 |
| 2 | 32 | 3 | 222 |
+----+----------+--------------+--------------------+
或者还有其他更好的建议吗?
最佳答案
标准化表。
也许,您不需要phone_affiliate 表中的“id”字段。您可以设置主键(phone_id,affiliate_id)或(phone_id,affiliate_id,affiliate_phone_id),这取决于数据之间的关系。
mysql> select * from phone_affiliate;
+----------+--------------+--------------------+
| phone_id | affiliate_id | affiliate_phone_id |
+----+----------+--------------+---------------+
| 32 | 2 | 123 |
| 32 | 3 | 222 |
+----+----------+--------------+---------------+
关于mysql - 将 json 存储在字段中还是使用单独的表进行规范化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12510739/