Locations
和Events
之間的關係是一個1對多的關係的一個例子。這意味着每個單獨的位置可以有許多與之關聯的事件。這些類型的關係通常通過將外鍵添加到引用「一個」表(位置)的主鍵的「多個」表(事件)來實現。
'位置'和'類型'之間的關係是多對多關係的一個例子。這意味着一個地點可以有多種類型,並且類型可以與多個地點相關聯。這些類型的關係通常通過鏈接表來實現,鏈接表包含相關行的外鍵。鏈接表通常具有兩個外鍵的組合主鍵,這意味着一個位置不能與「條形」類型鏈接兩次。
所以,下面的表結構可能適合你:
Location: ID (primary key), LocationName, ...
Events: ID (primary key), LocationID (foreign key), Date, Name, ...
LocationTypes: LocationID (fk), TypeID (fk)
Types: ID (pk), Name, ...
要跨多個表的查詢信息,你必須使用連接。對於一對多關係,以下查詢將起作用:
SELECT
l.LocationName, e.Name, e.Date
FROM Location l
JOIN Events e ON l.ID = e.LocationID
對於多對多關係,以下查詢會將信息連接在一起。
SELECT
l.LocationName, t.Name as TypeName
FROM Location l
JOIN LocationTypes lt ON l.ID = lt.LocationID
JOIN Types t ON lt.TypeID = t.ID
這些示例僅顯示標準的內部聯接,還有其他聯接類型可能更適合您的需要。
好吧,這樣就有了一個sql查詢,當我替換缺少的變量時會創建這些關聯?我一定會在這方面進行更多搜索,但這非常有幫助。 – pufAmuf