为了账号安全,请及时绑定邮箱和手机立即绑定

使用文件名、测试名及其每次构建的结果设计数据库

使用文件名、测试名及其每次构建的结果设计数据库

C#
慕容3067478 2021-06-17 17:05:20
我要设计一个数据库,在那里我有存储Test Name每个Filename和每一个Test Name可以在几个运行Builds和既可以Pass或Fail。Filename&之间存在 1-1 关系Test Name,这意味着 1 个测试有一个 1 文件。但是每个测试都可以在许多构建上运行,并且可以有不同的输出。我的方法是:表 1:FileAndTestMap+----------+----------+| Testname | Filename |+----------+----------+| 1        | A.txt    |+----------+----------+| 2        | Er.txt   |+----------+----------+表 2:构建+------+--------------+| S No | Build Number |+------+--------------+| 1    | Build_123    |+------+--------------+| 2    | Build_234    |+------+--------------+表 3:Build_XXX (对于每个构建)+----------+----------+--------+| TestName | Executed | Passed |+----------+----------+--------+| 1        | Y        | Y      |+----------+----------+--------+| 2        | N        | N      |+----------+----------+--------+我不喜欢这种设计,需要一个更好的方法来解决这个问题。任何帮助表示赞赏。
查看完整描述

2 回答

?
莫回无

TA贡献1865条经验 获得超7个赞

您可以根据实体的持久性来决定数据库映射,即您的实体是否可以独立持久化。具体就您而言,以下是独立和依赖实体:

  1. 文件名 > 独立。即使没有测试或构建,文件也可以保留。

  2. 测试名称 > 相关。仅当文件存在且构建存在时,测试名称才能存在。并且每个测试名称都属于一个且仅一个文件名。

  3. 构建 > 部分依赖于文件。您可以在至少有一个文件时构建

所以,现在您可以通过这样的数据库映射开始:

文件名

 +----------+----------

| Id       | Filename |

+----------+----------+

| 1        | A.txt    |

+----------+----------+

| 2        | Er.txt   |

+----------+----------+

// Id is primary key

// 如果测试仅依赖于文件,那么 testId 可以直接在此处作为外键,但测试依赖于构建,这是一对多的。(一个测试可以在许多构建上运行)


测试


    +------+--------------+

    | Id   | Test Name    |

    +------+--------------+

    | 1    | Test 1       |

    +------+--------------+

    | 2    | Test 2       |

    +------+--------------+

//Id is primary key

建表


    +------+--------------+

    | S No | Build Number |

    +------+--------------+

    | 1    | Build_123    |

    +------+--------------+

    | 2    | Build_234    |

    +------+--------------+

// Id is primary key

构建测试映射


+------+--------------+ ------- + ------ + --------+---------

| Id   | BuildId      | TestId | FileId | Executed | Passed |

+------+--------------+ -------+ -------+ -------- + -------

| 1    | Build_123    |  1     |  2    |   y       |  n     |

+------+--------------+ -------+ ------+ ----------+ -------

| 2    | Build_234    |  1     |  2    |   y       |  y     |

+------+--------------+------- + ------+ ----------+ -------


//Notice here TestId is foreign key of Test table and FileId is foreign key of File table and BuildId is foreign key of Build table


查看完整回答
反对 回复 2021-06-20
  • 2 回答
  • 0 关注
  • 151 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信