簡體   English   中英

MySQL注釋表與多個表的關系

[英]Mysql comments table in relation to multiple tables

由於基本可以在任何內容下進行注釋,因此我不確定如何將該關系轉換為數據庫設計模式。

    CREATE TABLE comments (
    id INT(11) NOT NULL PRIMARY KEY,
    content TEXT NOT NULL,
    authorId INT(11) NOT NULL,
    FOREIGN KEY(authorId) REFERENCES users(id)
    );

如您所見,注釋還通過將作者的ID存儲在數據集中來與用戶表建立聯系。 但是,評論本身可以在帖子或視頻下面,這是兩個單獨的表格。 這是我的問題:我應該為兩個關系(video_comments和post_comments)創建一個聯結表,還是應該以其他任何方式創建它。 另外,應該有一個ON DELETE CASCADE約束,該約束應導致視頻被刪除,同時也刪除與其相關的評論。

我認為您可以創建commentable_idcommentable_type來讓您知道此ID屬於此部分屬於哪個表

另外,應該有一個ON DELETE CASCADE約束,該約束應導致視頻被刪除,同時刪除與之相關的評論

我不知道該怎么做,我想如果我在您的位置,我會在刪除視頻之前使用代碼進行處理,然后檢查是否有任何評論並將其刪除。

這是您可能要考慮的另一種方法:

  1. 添加名為“ itme_id”或類似名稱的列以存儲video_id或post_id
  2. 在視頻和發布表上創建for/after delete triggers后,請使用魔術表中的信息在觸發器內的注釋表上進行刪除。

這樣,您不必創建新表或使用級聯對象。 這只是我的假設,如果對您有意義,請告訴我。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM