我有一个多租户应用程序,它将使用 SILO 模型来保存数据(每个租户将获得一个自己的数据库)。
因为租户名称可能是多余的,所以我的数据库带有 GUID:
MyApp_[GUID]
。
现在我想为每个数据库保存简单但必要的信息,例如租户名称和 3 到 5 位信息。
有没有一种简单的方法来写入和获取这些数据?
我能想到的唯一方法是为此创建一个只有 1 行的特殊表 - 但这似乎是一个浪费的机器人。
如果您正在寻找比每个数据库一个表更简单的解决方案(并且必须处理必须只有一行的尴尬约束),您可以
ALTER DATABASE
更改它们。缺点是您只能存储字符串,并且每个会话的设置可能会被覆盖。COMMENT
。缺点是每个数据库只能存储一个字符串;优点是它会自动显示在许多数据库列表中,例如psql
的\l+
命令pg_database
系统表。你不应该搞乱它,所以即使你知道自己在做什么,这也是一个非常糟糕的主意,但在关系模型中它最接近你所要求的,所以为了完整性我会提到它。我并不真正提倡任何这些解决方案,尽管它们满足您的要求,但可能有更好的解决方案来解决您的实际问题。它可能是一个简单的数据库表,可能带有
pg_database
的外键,位于所有租户共享的额外数据库中。