许多数据库系统都不允许对表和字段进行注释或描述,那么除了具有良好的命名约定之外,如何记录表/字段的用途呢?

(现在假设"优秀"的表名和字段名不足以记录数据库中每个表、字段和关系的全部含义.)

I know many people use UML diagrams to visualize the database, but I have rarely—if ever—seen a UML diagram including field comments. However, I have good experience with using comments inside .sql files. The downside to this approach is that it requires the .sql files to be manually kept up-to-date as the database structure changes over time—but if you do, you can also have it under version control.

我看到的其他一些技术是描述数据库 struct 和关系的单独文档,以及在ORM代码或其他数据库映射代码中手动维护的注释.

你过go 是如何解决这个问题的?存在哪些方法,以及与之相关的各种优缺点是什么?你希望在"完美世界"中如何解决这个问题?

Update

正如其他人指出的那样,大多数流行的SQL引擎实际上都允许注释,这很棒.奇怪的是,人们似乎不太使用这些功能.至少在我过go 参与的项目上不是这样.

推荐答案

MySQL对表格和行的allows条 comments .PostgreSQL does也是如此.从其他答案来看,甲骨文和MSSQL也有 comments .

对我来说,用于快速刷新字段名、类型和约束的UML图和扩展描述所有与数据库相关的内容的外部文档(TeX,但可以是任何格式)的组合-特殊值、字段注释、访问说明等等-效果最好.

Database相关问答推荐

如何在Ballina中的事务失败时回滚缓存插入操作

什么是hibernate annotated类中使用的 catalog?

数据库设计:多表与单表

使用 LiquiBase 和 Spring 将大量值(使用 FK)插入数据库

try 重新打开一个已经关闭的对象:SQLiteDatabase

触发器内的多个插入/更新语句?

将所有数据库列设置为 NOT NULL 是一种好习惯吗?

无法加载时区?

表模块与域模型

Oracle 的免费桌面客户端?

MongooseJS - 如何找到具有最大值的元素?

Redis-cli - Select 哪个实例?

如何将 Android 手机上的 SQLite 数据库与服务器上的 MySQL 数据库同步?

C++ SQL 数据库库比较

数据库与微服务的一致性

如何删除除了postgres中的少数数据库之外的所有数据库

对于 N:M 关系,在 MongoDB 中推荐的级联删除等效项是什么?

用于存储文件夹系统的数据库模式的 Select

在 MYSQL 的子查询中使用 LIMIT 关键字的替代方法

复制没有 LOCK 权限的 postgres 数据库