2016-09-25 143 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