如何添加多条记录并避免使用多字段值?

How do I add mulltiple records and avoid using multi-field values?

我正在为人事记录创建一个数据库,并试图简化用户的记录创建过程并避免使用笨拙的解决方案。 table 是:

人: people_id, person_name, person_category_id

person_category: person_category_id, 人物类型

document_requirement: document_requirement_id, document_requirement_姓名, person_category_id, document_section_id

document_section: document_section_id, document_section

我创建了一个追加查询(内部联接),它填充了一个 table 调用的 document_repository,其中包含所有人所需的所有文档。 (我使用由 people_ID 和 document_id 组成的主键来避免在运行追加查询时重复。)这是 document_repository table.

document_respository: document_repository_id, people_id, 人 category_id, document_id, document_section_id, document_attachment

我希望能够允许用户创建适用于多人类别的文档要求。我知道我应该避免使用多字段值,这对内部联接不起作用。例如,如果人员类别包括医生和护士,我希望能够创建适用于两种人员类别(例如,医生和护士)的新文件要求,而不必创建两个单独的文件要求。

需要更多信息?

关于设计更改的建议and/or 查询?

谢谢!

snapshot of tables and relationships

你描述的是多对多关系。每个文件要求可以适用于多个人员类别,不同的文件要求可以适用于同一人员类别。

要在数据库中的两个实体 (table) 之间建立多对多关系,您需要另一个 table 来关联它们。这个额外的 table 包含两个 table 的主键,这个 table 中的每条记录代表两个实体之间的 link。

你的文本和图表的命名不同,但我假设你想要 document_requirement 条记录,这些记录可以 link 到零条或更多条 person_category 条记录。

您需要一个 table,例如可以称为 document_requirement_person_category 并包含以下字段:

  • document_requirement_id - 外键引用 document_requirement
  • 的 PK
  • person_category_id - 外键引用 person_category
  • 的 PK

然后,您为与每个文档要求相关的每个人员类别向此 link table 添加一条记录。

编辑:顺便说一句,(如果我正确阅读了您的模式),您的模式中已经有多对多关系:document_repository 允许多人和文档要求之间的关系以及多个文件要求和一个人。这是多对多的关系。