Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database 访问表设计-两个选项-哪一个更好?_Database_Database Design_Ms Access 2007 - Fatal编程技术网

Database 访问表设计-两个选项-哪一个更好?

Database 访问表设计-两个选项-哪一个更好?,database,database-design,ms-access-2007,Database,Database Design,Ms Access 2007,我有一个表格,我需要存储来自不同产品实验室的样本分析数据。我有两个选择。我通常会使用选项1,但我想知道是否应该开始使用选项2的版本。对于每个样品,即使是相同的产品,我每周都要求进行不同的测试,但有些是重复的,有些不是。下面是我可以使用的选项 选项1 选项2 TestID将链接到一个包含TestID编号和测试名称的表。选项#2永远不会有空字段值,但会有更多行。选项#1将有许多空值,但每个样本的所有值将一起排成一行。随着我对数据库的理解加深,我认为选项2就是它们的全部内容。最后要注意的一点是,虽然我

我有一个表格,我需要存储来自不同产品实验室的样本分析数据。我有两个选择。我通常会使用选项1,但我想知道是否应该开始使用选项2的版本。对于每个样品,即使是相同的产品,我每周都要求进行不同的测试,但有些是重复的,有些不是。下面是我可以使用的选项

选项1

选项2

TestID将链接到一个包含TestID编号和测试名称的表。选项#2永远不会有空字段值,但会有更多行。选项#1将有许多空值,但每个样本的所有值将一起排成一行。随着我对数据库的理解加深,我认为选项2就是它们的全部内容。最后要注意的一点是,虽然我在上面的示例中有四个测试,但实际上是50+。谢谢

那么,选项2更加规范化。以后再添加其他测试将很容易。
另外,如果您有50多个测试,应用程序设计将更容易

顺便说一句,我很想使用TestCode而不是TestID。代码将是测试的2-3个字母表示。它将占用更多的空间和CPU,但实际上两者都可以忽略不计。如果你必须直接查看表格,阅读起来会更容易。

好吧,选项2更规范化。以后再添加其他测试将很容易。
另外,如果您有50多个测试,应用程序设计将更容易


顺便说一句,我很想使用TestCode而不是TestID。代码将是测试的2-3个字母表示。它将占用更多的空间和CPU,但实际上两者都可以忽略不计。如果你必须直接查看表格,阅读起来会更容易。

从样本判断,我怀疑即使是完整的测试名称也不会有什么坏处。保存一个完整性测试表是很容易的,TestID与TestCode或TestName并没有真正困扰我。我平均每周有1100个样本,其中一些样本进行了1次测试,而另一些样本进行了12次测试,甚至更多。一个后续问题:如果我有5个测试,所有的东西都得到了怎么办?我是否仍然使用选项2,或者对于5使用类似于表的选项1,对于任何附加测试使用类似于表的选项2…?我认为您应该坚持使用选项2,创建代码或查询以附加标准测试绝非难事。我同意,这并不难。我喜欢只使用一张桌子的一致性。谢谢你的帮助!根据样本判断,我怀疑即使是完整的测试名称也不会有什么坏处。保存一个完整性测试表是很容易的,TestID与TestCode或TestName并没有真正困扰我。我平均每周有1100个样本,其中一些样本进行了1次测试,而另一些样本进行了12次测试,甚至更多。一个后续问题:如果我有5个测试,所有的东西都得到了怎么办?我是否仍然使用选项2,或者对于5使用类似于表的选项1,对于任何附加测试使用类似于表的选项2…?我认为您应该坚持使用选项2,创建代码或查询以附加标准测试绝非难事。我同意,这并不难。我喜欢只使用一张桌子的一致性。谢谢你的帮助!
 SampleID     pH      Solids        Calcium        Nitrogen
 3755        4.2       20.6           15.8
 3756        4.35                     15.7           12.2
 SampleID     TestID     TestValue
 3755           1         4.2
 3755           2         20.6
 3755           3         15.8
 3756           1         4.35
 3756           3         15.7
 3756           4         12.2