1
lichao 2013-07-21 18:29:59 +08:00 via iPhone 1
如果拆分能减少很多冗余数据,那就拆分
|
2
hemingway 2013-07-21 18:33:57 +08:00 1
必须拆分,否则就是数据冗余了。
因为forbid_status和is_payed这两个数据和其他数据没有关系。 |
3
xing393939 OP |
4
hemingway 2013-07-21 19:25:52 +08:00 1
|
5
michaelbibby 2013-07-21 20:14:00 +08:00 1
多嘴一句,is_payed 应该改为 is_paid。
|
6
hahastudio 2013-07-21 20:33:16 +08:00 1
首先,原来的表里,我们可以知道
uid, chat_uid → forbid_status uid → is_paid #我猜的,也许实际情况是一可以用户只对某一用户付费而使其强制收到私信? 那么这么拆分比较好 UserToUserForbid(uid, chat_uid, forbid_status) UserPaid(uid, is_paid) UserToUserChatContents(uid, chat_uid, timestamp, content) #在这里加入时间戳我觉得是符合应用场景的 关于数据库的范式,BCNF,3NF,4NF用的比较多,可以看一看 |
7
xing393939 OP |
8
hahastudio 2013-07-22 11:30:10 +08:00 1
@xing393939 那可以改成 UserToUserChatStatus(uid, chat_uid, forbid_status, paid_status)
|