数据库设计问题与消息框

时间:2010-08-19 18:06:42

标签: mysql database database-design

我有一个问题,我不确定设计它的最佳方法。

基本上,有用户。每个用户都可以有一个消息框,每个框依次可以有多条消息。

问题是,是否有一些特殊的消息框,包括“新建”和“垃圾箱”。用户需要拥有这两个框。

我对可以做些什么有一些想法。我的一个想法是每个消息框都有一个字段记录其类型(枚举“新”,“垃圾”或“其他”)。但这并不强迫他们拥有那些我喜欢的盒子。 / p>

我还可以让每个用户都有专门与其特殊框相关的字段(因此在user表中会有newBoxtrashBox等字段。当然,如果需要这些,那么useruser_messageBox表将是相互关联的,这将导致明显的问题。

然后,我可以在消息框表与用户无关的情况下进行多对多,因此会有另一个表将这两者作为多对多关联。但我不想要多对多的关系,所以它没有解决任何问题!

2 个答案:

答案 0 :(得分:0)

如果您只想为每个用户设置一个消息框,则调用“新”和“废弃”其他内容,例如状态。这是消息的一个领域。 (您还需要一个用户字段或等同于每条消息中的消息框。)

这可以让你开箱即用(!),如果你选择的话,可以给你关于如何使用该字段的其他想法:“已标记”,“重要”,“垃圾邮件”等。

答案 1 :(得分:0)

为什么不使用message_box_type字段,。

我认为您应该强制用户使用应用程序逻辑同时拥有两种消息框类型。

理想情况下,会有两个表,一个带有外键id message_box_id的消息表,将其链接到另一个表message_box。除了其他字段之外,message_box表还具有message_box_type字段。应用程序逻辑将确保在用户注册/创建时创建两个类型“new”和“trash”的message_box记录