【问题标题】:Database design question with message boxes带有消息框的数据库设计问题
【发布时间】:2010-08-19 18:06:41
【问题描述】:

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

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

问题在于,有一些特殊的消息框,包括“新建”和“垃圾箱”。用户必须拥有这两个盒子。

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

我还可以让每个用户都有专门与他们的特殊盒子相关的字段(所以在user 表中会有像newBoxtrashBox 这样的字段)。当然,如果需要这些,那么useruser_messageBox 表将是相互关联的,这将导致明显的问题。

然后,我可以在消息框表与用户不相关的情况下使其成为多对多,因此将有另一个表将这两个表关联为多对多。但是我不想要多对多的关系,所以它解决不了任何问题!

【问题讨论】:

    标签: mysql database database-design


    【解决方案1】:

    如果您只希望每个用户有一个消息框,则将“新”和“垃圾”称为其他内容,例如状态。让它成为消息的一个字段。 (您还需要一个用户字段,或者相当于每条消息中的消息框。)

    这会让您跳出框框思考 (!),如果您选择“标记”、“重要”、“垃圾邮件”等,可能会为您提供有关如何使用该字段的其他想法。

    【讨论】:

    • 你知道,我想到了这个,但后来忘记了!所以感谢您的回复。我想我会试试这个,看看它对我有什么好处。
    • 这个计划最终效果很好!所以我会选择你的作为答案。谢谢。
    【解决方案2】:

    你为什么不使用 message_box_type 字段。

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

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

    【讨论】:

    • 我知道我可以通过应用程序逻辑来做到这一点,但我想看看是否有一个好的方法可以通过数据库来做到这一点。我想我也会尝试这个设置,所以谢谢你的回答。
    猜你喜欢
    • 2011-09-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多