1

什麼是將多個文件添加到多個表的最佳數據模型?例如,我有5個表格文章,博客,帖子...和每個項目我想存儲多個文件。文件表只包含文件路徑(不是物理文件)。將文件添加到多個表M:N

例子:
enter image description here

進出口使用的聯繫表,但是當我在將來例如創建新表「的意見」,那麼我就需要新列添加到的聯繫表。

有沒有更好的建模方式來建模這些數據?

回答

0

解決此問題的一種方法是使用表格繼承模式。主要想法是有一個基本表(我們稱之爲content),其中包含有關所有項目(例如創建日期)的一般共享信息,最重要的是與文件的關係。然後,您可以在將來添加其他內容類型,而不必擔心它們與files的關係,因爲content父類型已經處理它。

例如爲:

CREATE TABLE flies (
    id NUMERIC PRIMARY KEY, 
    path VARCHAR(100) NOT NULL 
); 

CREATE TABLE content (
    id NUMERIC PRIMARY KEY, 
    created TIMESTAMP NOT NULL 
); 

CREATE TABLE links (
    file_id NUMERIC NOT NULL REFERENCES files(id), 
    content_id NUMERIC NOT NULL REFERENCES content(id), 
    PRIMARY KEY (file_id, content_id) 
); 

CREATE TABLE articles (
    id NUMERIC PRIMARY KEY REFERENCES content(id), 
    title VARCHAR(400), 
    subtitle VARCHAR(400) 
); 

-- etc... 
+0

謝謝你的快速答覆。表文章,PK Id被引用到內容。 IT手段將爲每篇文章創建1行內容。對於每個內容表(文章,帖子,...)將在內容中創建1行,文件將鏈接到帶有鏈接表的這些行。我理解正確嗎? – steelbull

+0

爲了比較,是否存在另一種解決方案? – steelbull

+0

@steelbull是的。將內容看作所有具體內容類型的「抽象父類」,例如文章,博客等。 – Mureinik