规范报告的数据库设计

时间:2011-04-27 23:54:33

标签: sql-server database database-design ms-access ms-access-2007

我们的小组希望将我们的规范数据存储在数据库中。但是,我们需要在数据库设计方面提供一些帮助。

该小组决定制定一份8页的规范,其中至少有100个单一值的“空白”。以表格格式显示几组值。如果值为空,则不适用于给定的产品。每个字段都有一个特定的数据类型。具有以下数据类型的字段均表示为:整数,小数,查找列表,文本,日期和布尔值。

数据库还应跟踪以前的修订。

从一般的角度来看,我该如何设计数据库?

选项1:一个或多个一对一表

  • 一张以“ID”和“Rev”为主键的大表。
  • 使用最新的“批准日期”作为修订版进行主动修订。
  • 如果字段数超过DBMS限制,请将表拆分为多个“一对一”字段,每个字段都以“ID”和“Rev”作为主键。

选项2:实体价值

  • 主表(ID,Rev)
  • 对于每种数据类型:
    • <data_type> _类别表,描述该数据类型的每个字段
    • <data_type> _每个值实例的值表(ID,Rev,类别,值)

选项?:你想出任何想法......

注意:如果适用,我计划对整个项目(表单,表格,查询和报告)使用MS-Access。我们还有SQL Server和MSDN订阅,所以如果你强烈建议,这也是一个选项。

修改

  • 这将是一个内部数据库。
  • 我们有大约150个规格,我希望每年每个规格有一个新版本。
  • 我很可能会在问题出现时维护这个数据库。
  • 大约有五个人应该能够创建和更新规范和修订版。
  • 大约二十五名员工将从该数据库中检索数据(打印报告,查找规范等)

EDIT2:(HansUp的澄清)

  • 我将重新考虑使用查找字段并考虑其他选项(创建另一个表,文本值等)
  • 通过“每个字段将具有特定的数据类型”,我的意思是每个字段(或“空白”)将具有相应的数据类型。例如,MAX_CHAMBER_PSI将始终为整数值,PERFORM_TEMPERATURE_TEST将始终为是/否,REVISION_REASON将始终为字符串。
  • 用户数量只是近似值。大约五个用户将具有创建/更新访问权限,并且大约二十五个额外用户将只能读取数据。在form_load上,我只是计划根据登录的用户隐藏控件和更新属性。

EDIT3:摘要:

我们设计了一个包含~100个字段的规范报告,所有字段都依赖于SpecID和Rev来定义我们产品的各种属性的可接受范围。

目前,规范是手工编写的,并存放在文件柜中。此外,每个测试台的活页夹中都提供了每个规格的最新版本的副本。

如何使用大约一百个属性建模主键,这超过了Microsoft Access表中列的限制?

2 个答案:

答案 0 :(得分:1)

我会推荐实体价值方法,根据我的经验,尝试以“简单”的方式做这种事情(设计扁平数据结构很容易,但数据处理起来并不容易)。 / p>

看看Duane Hookum's At Your Survey database template。我自己没有用它,但我已经看过它的详细讨论了,似乎他使用了这种方法。

答案 1 :(得分:1)

我的建议是选择#1选项。 #2将会变得更复杂一些,而且对你的情况来说可能是不必要的。如果你让每个用户定义他自己的字段,那么#2可能是合理的,但是我没有从你的描述中得到它。

您的规范只是一个包含100个字段的实体。将其建模为100个“场对象”的“容器”是一种过度杀伤。