2016-09-25 150 views
0

我有点卡住正常化我的数据库的想法。规范化MySQL数据库在一列中有多个值

关于我的项目的一些信息: 我使用PHP和MySQL为安全卫士创建报告工具。每个保安都有自己的登录信息,并可以创建当天的报告。该报告由这些输入:

  1. 日期
  2. 广场
  3. 警卫工作 - 这是我的问题
  4. 形势 - 这是我的问题也
  5. 再就是多个输入字段中有数字将用于图表。 (比如你今天扔了多少人等等)

现在,守卫可以做一个报告,但是当谈到为一个报告添加更多的守卫时,我失去了理智。我已阅读过concat并在同一列中用','分隔,但破坏了规范化,是一种不好的做法。

你可以看到这个PIC报告: Report

现在,这是挪威所以也许你不明白。 “Jobb”是指工作中的安保人员,在这里我必须能够添加多个后卫姓名,然后将其保存到我的数据库中。

问题:我有其他统计的多个输入字段,所以我可以创建一个图表,但我不能添加多个安全警卫。如果我应该创建一个新行,是不是创建一个新的ID和需要相同值的列,只需添加另一个保安人员?

希望你明白我的问题,只是给我一个这样做的想法,我会照顾其余的。

这说明了什么,我需要另一个图:但是这是不可能的(休息正常化)

Stack2

(图中列数,所以我可以创建一个图表)

+0

''''''''''''对于concat和红色的','在同一列中是红色的,但破坏了规范化,是一种不好的做法。“我认为这是问题的核心。我觉得,你应该回去重新思考你的整个数据库模式,并着眼于使用额外的数据库表。 – Abela

回答

3

您可以创建第三张表格充当“有许多”警卫。

因此,例如: Report_guards

2列,报表/图表是,后卫ID

两个柱子均是外键到相应的表。

+0

像一个连接表? – Asim

+0

是的,没错。 –

+0

我今晚要和这个一起工作,并试着让它发生。如果我无法做到这一点,生病回到这里,如果可能的话再次寻求帮助。感谢球员为你的时间回答:) – Asim