2015-11-03 78 views
1

說我有幾個表,如:基本的SQL表結構

  1. 產品
  2. 員工
  3. 設施
  4. * Schedule_Events

在Schedule_Events表,我會有列start_time,end_time,筆記等...

我的問題是,如果我需要安排員工,產品或設施,那麼遵循的適當結構是什麼。

若本產品/僱員/設施表直接鏈接到Schedule_Events ...

如: Schedule_Events(表)

  • Schedule_Event_ID
  • EMPLOYEE_ID
  • PRODUCT_ID
  • Facility_ID

...基本上鍊接的外鍵時適用,或者我需要一堆子表...

  • Schedule_Events_Employees
  • Schedule_Events_Facilities
  • Schedule_Events_Products

OR

一個名爲Schedule_Event_Items的表,包含所有th e以上...

或其他一些表設計我不考慮?

我很新,在此,任何幫助表示讚賞。

在此先感謝!

+0

它們應該直接與外鍵鏈接到三個表中的每一個。跟創建構成同一個事物的三張不同表格相比,要容易得多。 – Siyual

+0

你應該有更多的表格。'Events'' EventSchedules'' ProductEventSchedules''EmployeeEventSchedules'' FacilityEventSchedules' – JamieD77

回答

0

如果某些記錄是一對多的話,第一條建議將不起作用。如果更多的員工可以與事件相關聯,那麼設計是有缺陷的,不能使用。

解決這個問題的標準方法是使用鏈接表(Schedule_Events_Employees,Schedule_Events_Facilities,Schedule_Events_Products),這樣您就可以擁有多對多的關係,這就是數據可能要求的關係。你可以把它們全部放在一張表中,併爲這個類型添加一個列,但是然後你失去了FK的權力,並且你最終還是加入到這張表中3次以獲得所有數據。所以第三種可能性沒有優勢。