什么是将多个文件添加到多个表的最佳数据模型?我有5个表格文章,博客,帖子......以及我想要存储多个文件的每个项目。文件表仅包含文件路径(不是物理文件)。
例:
我正在使用链接表,但是当我将来创建新表例如" comments"时,我需要在链接表中添加新列。
有没有更好的方法来建模这些数据?
答案 0 :(得分:0)
解决此问题的一种方法是使用表继承模式。主要思想是建立一个基表(让我们称之为content
),其中包含有关所有项目的一般共享信息(例如,创建日期),最重要的是与文件的关系。然后,您可以在将来添加其他内容类型,而不必担心它们与files
的关系,因为content
父类型已经处理过它。
E.g:
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...