2

将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                |
+----+----------+--------------+--------------------+

还是有其他更好的建议?

4

2 回答 2

4

规范化表。

也许,您不需要 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                |
+----+----------+--------------+---------------+
于 2012-09-20T10:42:44.383 回答
1

只需使用规范化表,如果您必须以 JSON 以外的其他格式访问数据,这将有所帮助。

于 2012-09-20T10:34:35.467 回答