2012-09-20 22 views
1

最好是將json數據存儲在affiliate_phone_id字段中,或使用單獨的表對其進行規範化處理?將json存儲在字段中或使用單獨的表來規範化?

例如:

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}] | 
+----+----------+-------------+-------------------------------------------------------------------------------------------+ 

上面的數據表明,每個零售商具有自己的電話的ID,例如:

公司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    | 
+----+----------+--------------+--------------------+ 

或者任何其他更好的建議?

回答

3

標準化表。

也許,你不需要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    | 
+----+----------+--------------+---------------+ 
1

只需使用規範化表格,這將有助於您訪問JSON以外的其他格式的數據。

相關問題