我有这样的表:mysql的从具有表中的多个键值对的单场关键的选择值
服务:
+----+-----------+------------+-------------+
| id | name | service_id | description |
+----+-----------+------------+-------------+
| 1 | CHAT | 1 | |
| 2 | SMS | 1 | |
+----+-----------+------------+-------------+
service_features:
+----+------------+------------+-------------+
| id | service_id | name | description |
+----+------------+------------+-------------+
|10 | 1 | Audio | |
|20 | 1 | Video | |
|30 | 2 | BULKSMS | |
+----+------------+------------+-------------+
client_services:
+----+-----------+------------+----------------------------------+---------------------------------------------+
| id | client_id | service_id |service_features_id |service_values |
+----+-----------+------------+----------------------------------+---------------------------------------------+
|100 | 1000 | 1 |features:{10:enable, 20:disable} |values:{data_transfer:102400, quota:204800} |
|200 | 1001 | 2 |features:{30:enable} |values:{total_sms:100000, users:800} |
|300 | 1001 | 1 |features:{10:disable, 20:enable} |values:{quota:204800} |
+----+-----------+------------+----------------------------------+---------------------------------------------+
现在,我只需要从mysql select查询中获取任何密钥的服务值,即data_transfer或client_id 1000的配额。 答案应该分别为102400或204800
是否有任何更好的方式来形式化表格或存储信息。请建议。
怎样的特征值涉及到service_features?例如,您如何知道data_transfer和quota是如何处理的?你一定要规范化数据,但我们需要更多地了解关系如何工作。 – Tom 2013-03-21 12:50:26
@Tom:将列名称编辑为service_values,并且我们将客户端与service_id – Mangesh 2013-03-21 13:04:28