使用一列中的多个值规范化MySQL数据库

时间:2016-09-25 16:43:17

标签: php mysql database normalization

我对我的数据库规范化的想法感到有些困惑。

有关我项目的一些信息: 我正在为安全卫士创建一个包含PHP和MySQL的报告工具。每个保安都有自己的登录,可以创建当天的报告。该报告包含以下内容:

  1. 日期
  2. 放置
  3. 工作中的警卫 - 这是我的问题
  4. 情况 - 这也是我的问题
  5. 然后有多个输入字段,其中有数字将用于图表。 (就像你今天抛出的人数等)
  6. 现在,警卫可以报告,但是当涉及为一份报告添加更多警卫时,我会失去理智。我已经阅读了关于concat并在同一列中拆分','但这会破坏规范化并且是一种不好的做法。

    你可以看到这张照片: Report

    现在这是挪威语,所以也许你不明白。 “VekterepåJobb”意味着工作中的安全警卫,在这里我必须能够添加多个警卫名称,然后将其保存到我的数据库中。

    问题:我有其他统计信息的多个输入字段,因此我可以创建图表,但我不能添加多个安全保护。如果我应该创建一个新行,是不是创建了一个新的ID和值必须相同的列,只需添加另一个安全保护?

    希望你理解我的问题,让我知道如何做到这一点,我会照顾其余的。

    另一张图片说明了我的需求:但这是不可能的(打破规范化)

    Stack2

    (图表列是数字,所以我可以创建图表)

1 个答案:

答案 0 :(得分:3)

您可以创建一个充当“有很多”警卫的第三个表。

所以例如: Report_guards

有2列,报告/图表是,保护ID

两列都是相应表的外键。