我遇到了一个关于 MD5 值的数据类型的问题。该问题中的建议指出uuid
对该字段使用 as 类型。
论据扎实。但是我发现这可能会使不了解上述问题中揭示的要点的人感到困惑。使用 MD5 类型的决定uuid
是我希望在任何执行此操作的项目中以某种形式的文档看到的。
作为任何查看 DB Schema 的人的“帮手”,有人可能会争辩说要创建一个md5
继承自uuid
. 这样,列类型会更加明确,意图也会更加清晰。
但除了“重命名”现有类型外,它不会出于其他原因使用域。
正确记录它仍然是有意义的。但是该文档可以集中到解释数据库中域的部分。因此,您不会在文档方面获得任何收益。如前所述,我看到的优势是在查看表 DDL 时意图变得清晰。
这有什么缺点吗?
虽然将元数据存储为类型名称不是一个坏主意,但我不会这样做。这是一个滑坡,将导致
int
s 变成更具体的类型,不提供任何东西(就约束而言,DOMAIN 的用途)。关于列中内容的元数据属于列名,而不是类型。此外,您可以使用 PostgreSQL 进行解释
COMMENT
无法更改基础类型
来自 a_horse_with_no_name,
其他问题
关于域的范围有一些奇怪之处
对于使用域的任何函数,您需要确保文字中的类型属于域类型。
我自由地使用域,但只是为了添加约束,以便集中管理它们,而不是在 CHECK 语句的大杂烩中。