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