【发布时间】:2011-03-13 11:35:14
【问题描述】:
我遇到的情况涉及撰写项目报告的公司、项目和员工。
一家公司拥有许多项目、许多报告和许多员工。
一份报告由一名员工为公司的一个项目撰写。
每个公司都希望在报告中包含不同的内容。假设一家公司想了解项目绩效和速度,而另一家公司想了解成本效益。有 5 到 15 条标准,每个公司设置的不同,都适用于该公司的所有项目报告。
我正在考虑不同的方法来做到这一点,但我目前的僵局是这样的:
- 在公司表中,添加文本字段
criteria,其中包含按顺序所需的条件数组。 - 在报告表中,有一个
company_id和列criterion1、criterion2等。
我完全清楚,这通常被认为是糟糕的数据库设计 - 不优雅且不灵活。所以,我需要你的帮助!我怎样才能更好地构建它?
结论
出于以下原因,我决定使用序列化选项:
- 我对标准的要求很简单 - 一旦报告由每个员工提交,就不需要搜索或排序。
- 我想最大程度地减少数据库负载 - 在将要实现这些功能的地方,已经有一个带有开销的大页面。
- 我想避免使我的数据库结构复杂化,因为我认为这是一个相对简单的需求。
- CouchDB 和 Mongo 目前不在我的库中,因此我会将它们保存起来以备不时之需。
【问题讨论】:
-
您能写几句为什么需要报表表吗?在我看来,它完美地复制了公司表中的信息。我错过了什么?
-
公司表有
company_name之类的东西。报告是员工对公司某个项目的报告,根据多项标准对该项目进行评级。
标签: ruby-on-rails ruby-on-rails-3