Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/37.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.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
Asp.net 设计数据库_Asp.net_Sql Server_Database Design - Fatal编程技术网

Asp.net 设计数据库

Asp.net 设计数据库,asp.net,sql-server,database-design,Asp.net,Sql Server,Database Design,我想为下面提到的问题找到最好的解决方案。 我正在使用SQLServer2005和asp.NET2.0 我有一个主表,其中存储了不同项目的所有测试脚本。 从主表中的测试脚本中,我需要创建一个模块,并将所需的测试脚本添加到该模块中 用户界面设计是: 创建新模块。 从主表中选择所需的测试用例。 将测试用例添加到模块中 用户可以使用主表中不同的测试用例组合创建任意数量的模块 对于ex,主表有100个测试用例。我创建了两个模块。 模块1从主表中选择了40个测试用例。 模块2从主表中选择了20个测试用例 在

我想为下面提到的问题找到最好的解决方案。 我正在使用SQLServer2005和asp.NET2.0

我有一个主表,其中存储了不同项目的所有测试脚本。 从主表中的测试脚本中,我需要创建一个模块,并将所需的测试脚本添加到该模块中

用户界面设计是: 创建新模块。 从主表中选择所需的测试用例。 将测试用例添加到模块中

用户可以使用主表中不同的测试用例组合创建任意数量的模块

对于ex,主表有100个测试用例。我创建了两个模块。 模块1从主表中选择了40个测试用例。 模块2从主表中选择了20个测试用例

在这种情况下,如何设计数据库

总结:

  • 1NF消除重复组- 为每组制作一张单独的桌子 的相关属性,并给出每个属性 表a是主键
  • 2NF消除冗余数据-如果 属性仅依赖于 多值密钥,将其删除到 分开的桌子
  • 3NF消除不依赖的列 On键-如果属性不可用 有助于描述 键,将它们移到一个单独的位置 桌子
  • 阅读

    总结:

  • 1NF消除重复组- 为每组制作一张单独的桌子 的相关属性,并给出每个属性 表a是主键
  • 2NF消除冗余数据-如果 属性仅依赖于 多值密钥,将其删除到 分开的桌子
  • 3NF消除不依赖的列 On键-如果属性不可用 有助于描述 键,将它们移到一个单独的位置 桌子

  • 要获得第三范式,基本上至少需要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引用的规则将帮助您避免在设计的表上执行插入、更新和删除操作时出现异常。但非规范化并不能帮助您简化选择

    学习如何遵循规范化规则需要几周的时间。学习什么时候无视这些规则,以及如何在无视这些规则时提出一个好的设计需要更长的时间