Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/67.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
Sql 检查表数据库设计。一对多关系和存储用户信息_Sql_Database_Ms Access_Relationships - Fatal编程技术网

Sql 检查表数据库设计。一对多关系和存储用户信息

Sql 检查表数据库设计。一对多关系和存储用户信息,sql,database,ms-access,relationships,Sql,Database,Ms Access,Relationships,我基本上是在设计一个网络清单。过程如下:用户登录,为列表选择“职务名称”,单击它,转到下一页,从列表中选择“程序列表”,单击它,转到下一页,在那里他看到一个清单,基本上可以添加注释,然后单击单个列表上的复选框。 我知道如何编写大部分代码,但目前我正试图找出如何设置 关系+要添加哪些额外的表来保存信息 我目前拥有的总平面图: Table: User_list User_ID Username Table: Job_list Job_ID Job Name Table: Procedure_Li

我基本上是在设计一个网络清单。过程如下:用户登录,为列表选择“职务名称”,单击它,转到下一页,从列表中选择“程序列表”,单击它,转到下一页,在那里他看到一个清单,基本上可以添加注释,然后单击单个列表上的复选框。 我知道如何编写大部分代码,但目前我正试图找出如何设置 关系+要添加哪些额外的表来保存信息

我目前拥有的总平面图:

Table: User_list
User_ID
Username

Table: Job_list
Job_ID
Job Name

Table: Procedure_List
Procedure_ID
Procedure Name
Job_ID

Table: Check_List
Job_ID
Checklist_ID
Description
作业ID->程序ID->检查表ID是一对多。。。但是如何添加用户列表以存储用户所做的所有更改

因此,您基本上可以在一个页面上看到:

Job Name
Procedure
Checklist done

以及用户完成的所有细节。

我假设这些关系是作业1:m过程1:m清单。用户可以选择任意数量的作业。工作/程序/检查表的组合由用户选择。例如,我假设一个作业可能有10个关联的过程,用户选择其中的一个或多个。过程相同:给定过程具有与之关联的某些检查表,用户可以选择任意数量的这些检查表

使用“联接表”

  • 用户作业表。用户可以与任何作业或任何数量的作业相关联。用户ID和作业ID进入用户作业表。将主键设为用户ID+作业ID
  • 作业程序表。将用户作业键(两列)和过程id放入此表中。将主键设为用户ID、作业ID、过程ID
  • 程序检查表。将作业程序键(所有列)和检查表id放入此表中。使用所有列将主键设为复合键
  • 主键思想


    每个表的主键序列号将限制相关表中的列数。然而,这个键没有真正的意义,例如,如果您正在查看过程检查表,您无法在不查询其他表(PITA)的情况下判断哪个作业和用户。对这样一个键进行排序也是毫无意义的。而且它不能防止重复行。

    令人困惑。检查表有一个作业ID,但在文本中显示的是与检查表关联的过程,而不是作业。此外,对于每项工作,只允许某些程序,而反过来只允许某些检查表?或者三者的任意组合是允许的?好吧,每个作业就像一个包含过程列表的标题(基本上是一个包含该作业所需的所有内容的列表)。每个程序列表都有需要检查并存储在一个位置的步骤。来回答你的问题。我想它就像一个嵌套的表达式。