【问题标题】:website and mysql design question网站和mysql设计问题
【发布时间】:2011-08-28 07:27:30
【问题描述】:

我有一个 ROR 网站,人们可以在其中提出关系问题,其他人可以投票赞成或反对,并就他们的问题回复/建议他们。

我希望在回复文本框旁边有一个复选框,让提出原始问题的人可以来检查,关闭案例并告诉他们关系的结果。

例如,如果她讲了一个故事并问“你认为他喜欢我吗?”……那么她可以来回答“他确实喜欢我”并结案。

我有一个 cmets 模型和一个回复模型。我正在考虑在回复表中添加一个“解决方案”列,这意味着它是来自用户的结束回复,如果答案是“是”或“否”,则结果为 0 或 1,或者对于不是结束案例的回复为 NULL。

我还希望评论对象知道它是否有结束结果以及结果是什么。

因此,在网站超时时,有人会加载需要查找每条评论的网站,看看是否有任何回复被关闭,然后评论被关闭。

我认为这可能非常密集,我是否应该将同一列也添加到评论表中以便它只能检查?

【问题讨论】:

    标签: mysql ruby-on-rails database-design activerecord


    【解决方案1】:

    另一种选择是在您的问题表中添加一个resolution_id 列,并将其作为回复。然后设置一个has_one relationship 就可以了。

    您可以直接从问题中获得解决方案并轻松查看问题是否已解决,每个问题您最多也有一个解决方案。

    【讨论】:

    • 谢谢。所以 Comment 已经 has_many 回复了,设置 has_one 分辨率是否可以,即使分辨率是回复类型?嗯,所以在 Rails 中,has_many/has_one 之后的词必须是一个模型,这样代码不会对同一类型的 has_many 和 has_one 感到困惑吗?还是我需要创建一个名为分辨率的全新模型?
    • @mina:这两种关系都应该没问题。您可能还想在回复中添加一个标志以指示哪个是解决方案,但这取决于您将如何使用事物。
    【解决方案2】:

    我只会在评论表中添加分辨率。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-27
      • 1970-01-01
      • 2011-06-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多