请原谅这个问题的含糊不清,但数据库不是我的强项。
我的目标是使用 postgres 实现一个非常基本的文件元数据数据库。文件对于它们的相关元数据可能是唯一的,也可能不是唯一的。即一个 PDF 文件可以重复使用,但不同条目的元数据不同。
从对其他问题的基本阅读来看,我相信我至少想要三个表格,ID 加入其他表格。
Path (1 <-> n) ID (n <-> n) Metadata
ID
(如果这是一个问题,我可能会改变和之间的关系Metadata
为一对多)
然而,有趣的是大多数元数据是事先不知道的。Metadata
我想知道在更新请求上动态添加和填充表上的列是否可行。这将允许对元数据进行基本(如果非执行)搜索。
这甚至可行吗?还是使用了不同的更常见的模式,它们叫什么?
不,这是不可行的。最好的办法通常是添加一个
jsonb
包含所有奇数、稀有和动态属性的列。只要您在SELECT
列表或WHERE
条件中使用此类属性,该解决方案就非常好,但例如尝试加入 JSON 属性不会让您满意。