【发布时间】:2021-10-18 04:13:08
【问题描述】:
我有 PostgreSQL 数据库,其中包含多个模式和表。表中的每一行都有 PRIMARY UUID,例如 "Ref_Key" => "41bf3b1e-91f0-491c-a6bd-c48a17e7c252"
是否可以仅通过 UUID 查找行,而不指定架构和表?
【问题讨论】:
-
如果你真的不知道应该查询哪个表,那么它可能表明存在数据库设计缺陷。
-
不,不,实际上的目的是:我的用户可以创建链接到基础中每个已定义对象(表)的任务 - 汽车、客户等。当然我可以提供链接方式通过使用“模式、表、键”创建链接表来创建对象,但对我来说很有趣的是,只知道 UUID 就可以实现。
-
对于像 PostgreSQL 这样的关系数据库,您必须识别模式、表和键才能检索行。也许某种类型的 NoSQL 数据库只需一个键即可识别您想要的信息。
-
这听起来确实是一个非常奇怪的数据库设计。但是您可以做的是创建一个合并所有
ref_key列和它们来自的表的视图。或者编写一个使用动态 SQL 的函数来实现。
标签: postgresql database-design