Asp.net 设计数据库
我想为下面提到的问题找到最好的解决方案。 我正在使用SQLServer2005和asp.NET2.0 我有一个主表,其中存储了不同项目的所有测试脚本。 从主表中的测试脚本中,我需要创建一个模块,并将所需的测试脚本添加到该模块中 用户界面设计是: 创建新模块。 从主表中选择所需的测试用例。 将测试用例添加到模块中 用户可以使用主表中不同的测试用例组合创建任意数量的模块 对于ex,主表有100个测试用例。我创建了两个模块。 模块1从主表中选择了40个测试用例。 模块2从主表中选择了20个测试用例 在这种情况下,如何设计数据库 总结:Asp.net 设计数据库,asp.net,sql-server,database-design,Asp.net,Sql Server,Database Design,我想为下面提到的问题找到最好的解决方案。 我正在使用SQLServer2005和asp.NET2.0 我有一个主表,其中存储了不同项目的所有测试脚本。 从主表中的测试脚本中,我需要创建一个模块,并将所需的测试脚本添加到该模块中 用户界面设计是: 创建新模块。 从主表中选择所需的测试用例。 将测试用例添加到模块中 用户可以使用主表中不同的测试用例组合创建任意数量的模块 对于ex,主表有100个测试用例。我创建了两个模块。 模块1从主表中选择了40个测试用例。 模块2从主表中选择了20个测试用例 在
要获得第三范式,基本上至少需要3个表 您有testcase表(它是您的主表,包含所有测试用例)。然后有一个modules表,它为用户创建的每个模块创建一个条目。然后,您有一个test_modules表,其中一个外键返回到modules表和testcase表 创建新模块时,将在模块表中插入新行。对于为该模块选择的每个测试用例,您将在test_modules表中插入一行。每一行将有一个FK到modules表(以便您知道它属于哪个模块)和一个FK到testcase表(以便您知道它是什么测试用例) 因此,要获取特定模块的测试用例,可以执行如下查询:
select *
from modules m, testcase t, test_modules tmod
where m.id=tmod.module_id and tmod.testcase_id = t.id
这是一个非常简单和低效的查询,但它可以帮助您开始。要获得类似于第三范式的内容,您基本上至少需要3个表 您有testcase表(它是您的主表,包含所有测试用例)。然后有一个modules表,它为用户创建的每个模块创建一个条目。然后,您有一个test_modules表,其中一个外键返回到modules表和testcase表 创建新模块时,将在模块表中插入新行。对于为该模块选择的每个测试用例,您将在test_modules表中插入一行。每一行将有一个FK到modules表(以便您知道它属于哪个模块)和一个FK到testcase表(以便您知道它是什么测试用例) 因此,要获取特定模块的测试用例,可以执行如下查询:
select *
from modules m, testcase t, test_modules tmod
where m.id=tmod.module_id and tmod.testcase_id = t.id
这是一个非常简单和低效的查询,但它可以帮助您开始。“我有一个主表”
“如何设计数据库?”
前面的两个答案为您提供了有关表格设计的详细信息。当您设计表来存储与模块和脚本相关的数据时,这些细节将非常有用。但是,您需要了解其他一些基本原则
主表的设计是数据库设计的一部分。如果主表的设计对于您正在进行的项目来说非常不幸,那么根据具体情况,重新设计主表可能是最好的计划
规范化不是发现好设计的唯一方法。特别是,为2NF和3NF引用的规则将帮助您避免在设计的表上执行插入、更新和删除操作时出现异常。但非规范化并不能帮助您简化选择
学习如何遵循规范化规则需要几周的时间。要学会何时无视这些规则,以及如何在无视规则时设计出一个好的设计,需要花费更长的时间。我有一个主表
“如何设计数据库?”
前面的两个答案为您提供了有关表格设计的详细信息。当您设计表来存储与模块和脚本相关的数据时,这些细节将非常有用。但是,您需要了解其他一些基本原则
主表的设计是数据库设计的一部分。如果主表的设计对于您正在进行的项目来说非常不幸,那么根据具体情况,重新设计主表可能是最好的计划
规范化不是发现好设计的唯一方法。特别是,为2NF和3NF引用的规则将帮助您避免在设计的表上执行插入、更新和删除操作时出现异常。但非规范化并不能帮助您简化选择
学习如何遵循规范化规则需要几周的时间。学习什么时候无视这些规则,以及如何在无视这些规则时提出一个好的设计需要更长的时间