2013-03-05 61 views
0

例如,我有一個表格positions,我想在其中創建多個表格行之間的關係。如果需要「鏈接」在一起的行數是未知的,那麼最好使用單獨的表來鏈接ID?在多個表格行之間創建關係/鏈接

它是最好的......

  • 創建一個單獨的表links包含多列(即:linked_id1 [...] linked_id [N]),其中linked_ids是每一行和每一的id links.id列是鏈接的ID。邏輯是我們可以創建比我們想象的更多的列。

OR

  • 具有兩列,以及id其中linked_idslinked_idspositions分離的 「鏈接」 的行的陣列中的逗號創建一個單獨的表links

OR

  • 執行上述替換使用JSON數據陣列。

每行只能鏈接到一個組,這有望簡化一些事情。

+0

這些都不是3.讀一點關於1NF和2NF和3NF,你會得到一個很好的方向。 – 2013-03-05 17:21:27

+0

@HankyPankyㇱ感謝您的建議。你是說我應該做數組選項,然後在數組上使用1NF,這樣我在第三個表中有兩列'link_id'和'row_id',其中'link_id'不是唯一的? – Tomanow 2013-03-05 17:42:23

回答

0

如果每行可以包含到多個鏈接組中,那麼您可以創建LINKS表,其中包含兩個字段:ID1,ID2,它將存儲每個單獨的鏈接。

如果每行只能在單個鏈接組中,那麼您可以將GROUP_ID字段添加到positions表本身。

如果上述內容沒有回答您的問題,請澄清您的要求。

+0

我編輯了我的OP以包含說明:每行只能鏈接到一個組中。儘管你沒有回答這個問題,但也許我沒有像我想的那樣清楚地問。 – Tomanow 2013-03-05 17:36:28

+0

@Tomanow - 如果每一行只能屬於一組鏈接的行(比如說,同一年級的同學,同一排的士兵),那麼您不需要從* data modeling *透視圖獲得額外的表格。你只有兩個標籤[mysql]和[sql],這使我們相信你的問題是關於數據庫而不是你的應用程序使用它。 – 2013-03-05 17:44:33

+0

如果這些行與您的同一年級示例中的學生有共同點,那將會非常簡單,不幸的是,它們會通過複選框手動添加到鏈接組中。每個鏈接組都需要一個唯一的ID,所以我想最初將數據添加到一個AI PK單獨的表中。那麼我可以使用一個簡單的觸發器來更新每一行的鏈接id,如果我需要的話。閱讀我對Hanky的評論,我認爲這是我應該採取的方向。感謝您的建議,我很欣賞這些反饋。 – Tomanow 2013-03-05 17:57:28