【问题标题】:Store json in a field or use seperate table to normalize?将 json 存储在字段中或使用单独的表进行规范化?
【发布时间】:2012-09-12 16:59:37
【问题描述】:

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

以上数据显示,每个零售商都有自己的Phone 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                |
+----+----------+--------------+--------------------+

或者还有什么更好的建议?

【问题讨论】:

    标签: mysql database json normalization


    【解决方案1】:

    标准化表。

    也许,您不需要 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                |
    +----+----------+--------------+---------------+
    

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-11-01
        • 2011-09-19
        • 2012-04-07
        • 2012-04-24
        • 2010-11-16
        • 2011-08-07
        相关资源
        最近更新 更多