2010-08-19 71 views
1

我有一个问题,我不确定设计它的最佳方式。带消息框的数据库设计问题

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

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

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

我还可以让每个用户都具体涉及到他们的特种箱(因此在user表中会有像newBoxtrashBox领域)领域。当然,如果这些是必需的,那么useruser_messageBox表将相互这会导致明显的问题

然后,我可以使它成为多对多,其中消息框表与用户无关,因此会有另一个表将这两个关联为多对多 - 曼。布我不想要多对多的关系,所以它不能解决任何问题!

回答

0

如果你只想给每个用户一个消息框,然后调用“新”和“垃圾”等其他东西,就像一个状态。这是消息的一个领域。 (您还需要为用户提供一个字段,或者在每封邮件中同样需要消息框。)

这让您在盒子(!)之外思考,并可能会给您其他想法,以了解如何使用字段,如果您这样选择:“已标记”,“重要”,“垃圾邮件”等。

+0

您知道,我想到了这一点,但后来忘了它!所以谢谢你的回应。我想我会试试这个,看看它给我带来了什么。 – rovaughn 2010-08-19 20:01:17

+0

这个计划结果很好!所以我会选择你的答案。谢谢。 – rovaughn 2010-08-20 01:23:36

0

为什么不使用message_box_type字段。

我想你应该强制用户使用应用程序逻辑来使用消息框类型。

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

+0

我知道我可以通过应用程序逻辑来做到这一点,但我想知道是否有通过数据库完成的好方法。我想我也会尝试这个设置,所以谢谢你的回答。 – rovaughn 2010-08-19 20:02:53