0

我正在尝试定义一些 MySQL 关系。我有 3 个表格,如下所示:

     employee:
     | id | first_name | last_name | email

     notifications: (notification names are email, post etc)
     | id | name             | description

     employee_notifications:
     | id | employee_id | notification_id |

更改employee_notifications 表以使用json_encode 在一行中插入员工的所有通知ID 是否有任何优势(或劣势)?

截至目前,大约有 100 名员工和 6 种通知方法。

4

2 回答 2

2

更改employee_notifications 表以使用json_encode 在一行中插入员工的所有通知ID 是否有任何优势(或劣势)?

有明显的缺点。通过您当前的设置,您可以轻松找出员工拥有哪些通知,或哪些员工订阅了特定通知。将它作为 JSON 放在员工表中将消除您这样做的能力。

于 2012-11-22T01:25:54.700 回答
1

虽然并不总是完美的方法,也不适用于所有情况,但随着时间的推移,良好的可维护性的良好经验法则:

在您的主要数据结构中使用良好规范化(我不会说完全,因为有时这太过分了),并使用视图、存储过程或代码合成数据对象来创建该数据的优化使用视图。

于 2012-11-22T01:27:03.870 回答