2012-10-19 12 views
0

我有一個僱員數據庫。列是第一個名字,姓氏,部門,內部號碼等。理論:關於php,mysql,逗號分隔值

至於今天,它是一個數據庫只有一個組織,但在未來,我要添加到來自其他相關機構該數據庫名員工。

什麼是做正確的方式:

  1. 另一個字段添加到第一個表?
  2. 要創建3個字段的另一個表:id,organization_name,employees(在這個字段中,我會把第一個表的逗號分隔值)?

如果將選擇第二個答案當更新查詢將從不同帳戶同時執行到同一組織時會發生什麼情況。例如:我將添加一個id爲55的用戶給組織「警察」,同時另一位管理員將爲同一組織添加一個ID爲65的用戶。 在這種情況下,可能存在錯誤或數據-失利 ???

如果有人有過這樣那樣的問題,我真的想了解它.. 謝謝。

+0

保持數據庫中的關係......在一列存儲逗號分隔值必然導致各種問題......正常化 –

+0

@MarkBaker,還是想知道,數據庫規範化的實際意義.. 我已經讀了很多關於它,但沒有任何實踐的機會..這個數據庫是我第一個應該考慮一切的場景。 謝謝你的回答。 – Alex

+1

是的#1的意圖。基本上,您可以添加一個組織表,其中包含系統中唯一的組織列表(每行一個)。然後你必須決定現有的表與組織表的關係。您可能會決定部門表與組織表相關,因此您將org_id添加到該表中,假設部門僅與一個組織相關。如果您決定涉及組織的多對多關係,則可以添加映射表。包含(dept_id,org_id)的示例dept_org表。 –

回答

0

如果該組織僅僅是一個數字組的用戶,那麼我會建議把他們進入員工表。但是,如果您有關於組織的更多信息(例如名稱,地址..),則爲組織創建一個新表,並將相應組織的主鍵保存在employees-table中。

+0

好的方法..謝謝你..我會考慮這個選項.. – Alex

+0

不客氣。同樣用這種方法,你沒有在第二個問題中提到的proplem。 – mboldt