【问题标题】:One or more tables if modelling different type of data?如果对不同类型的数据进行建模,则需要一个或多个表?
【发布时间】:2011-06-18 08:21:21
【问题描述】:

我正在尝试找到对以下问题进行建模的最佳方法。

我在 Rails 中有用户和任务模型。用户每天完成一项任务。

到目前为止,我的两张表是:

  • 用户(姓名、电子邮件、密码)
  • 任务(工作日、任务名称,例如周一 - 跑步、周二 - 阅读、周三 - 写作、周四 - 列出你今天所做的事情等)

每个任务可能需要一个单独的屏幕,具体取决于所需的内容(例如,为“跑步”任务编写一些文本,而不是为“阅读”任务制作文章列表)。

我通常会根据给定的任务写一些东西或列出一些东西。

我遇到的问题是如何为任务详细信息表(或两个或多个表)建模? 我应该为每个任务有一个单独的表吗? 例如带有“Status”字段的“Monday”表,带有“Article”字段的“Tuesday”表等等。

或者有一个带有“状态”字段的表格广告使用这个字段来写入文本以及列出事物。

希望这是有道理的。感谢您的帮助和耐心。

【问题讨论】:

标签: ruby-on-rails ruby-on-rails-3 database-design


【解决方案1】:

听起来您的子任务本身就是任务。

我是否应该为每个任务创建一个单独的表格?

没有。

它可以是某种子任务表,也可以通过添加一个可为空的 parent_id 将任务表重新用于子任务。

【讨论】:

  • 但也存在特定于事物的有效负载的问题:要阅读什么文章,要跑多少公里,要写什么,...
  • @Mu:是的。如果他将每一张都标准化,我宁愿不要开始想象他将拥有多少张桌子。 :-)
  • 标准化并不总是可行的。有时您必须使用多功能varchar 才能获得可用的东西。我认为他的部分问题和困惑是如何处理这部分问题。
  • 是的。 name varchar, details text,或者类似的东西,在这里听起来很合理。
  • 最好带有一些 CHECK 约束以提供一些最小的完整性检查。
猜你喜欢
  • 2015-05-27
  • 2023-03-10
  • 2021-06-29
  • 1970-01-01
  • 2021-02-20
  • 1970-01-01
  • 1970-01-01
  • 2017-10-28
  • 2020-02-25
相关资源
最近更新 更多