【问题标题】:What is a good way to document what your tables and columns mean in a SQL Server database?在 SQL Server 数据库中记录表和列的含义的好方法是什么?
【发布时间】:2011-03-09 22:13:55
【问题描述】:

我正在使用 SQL Server 2008 数据库处理 C# 项目。数据库中有 50 多个表,仅从名称来看,这些表的用途和其中的列并不是很明显。我想创建某种形式的文档,以便未来的团队成员知道这些列和表的作用。

我正在寻找相当于 C#“代码 cmets”或“方法上的 XML 文档”的 SQL Server - 新手可以通过浏览这些内容来了解​​数据库表或列。

有哪些选择?

【问题讨论】:

    标签: sql-server


    【解决方案1】:

    你可以加extended properties

    Viewing Extended Properties

    例如显示 AdventureWorks2008R2 示例数据库中的所有扩展属性

    USE AdventureWorks2008R2;
    GO
    SELECT class, class_desc, major_id, minor_id, name, value
    FROM sys.extended_properties;
    GO
    

    Fun with Extended Properties in SQL Server 2008

    【讨论】:

      【解决方案2】:

      记录表列的简单方法是使用 SQL Server Management Studio 表设计器。填写每一列的描述字段。

      然后您可以通过加入 sys.extended_properties 表的查询来查看表信息:

      -- list table columns
      SELECT OBJECT_NAME(c.OBJECT_ID) [TableName], c.name [ColumnName], t.name [DataType], x.Value [Description], c.max_length [Length], c.Precision ,c.Scale
      FROM sys.columns AS c
      JOIN sys.types AS t ON c.user_type_id=t.user_type_id
      LEFT JOIN sys.extended_properties x on x.major_id = c.object_id and x.minor_id = c.column_id
      WHERE OBJECT_NAME(c.OBJECT_ID) = 'Employees'
      ORDER BY c.OBJECT_ID, c.column_id;
      

      【讨论】:

        【解决方案3】:

        Extended properties?可以在代码中或在 GUI 中设置

        我们也使用 Red Gate SQL Doc 来发布我们的架构,扩展属性出现在此处的描述中。很有用。

        【讨论】:

          【解决方案4】:

          文档本身就是一整套技能。好的命名方法是好的,一致性也是好的,因此数据库中没有任何关于你的风格的变化。

          除了使用 SQL 图表之类的东西,最好的东西是解释表格和列的好文档。定义对象/表/列之间的整体结构和关系。如果概念更复杂,请给出解释,但要让别人更容易说“这个专栏是做什么的?”无需通读一两段即可快速找到答案。

          【讨论】:

          • 同意,但我觉得好的文档的价值在于把它“接近被记录的项目”。例如,拥有一个单独的 Word 文档只是乞求过时且难以参考。
          • 我明白你的意思。不过,在一定程度的复杂性下,我认为引用外部文档可以简化开发过程。不过,这也是我个人的喜好。
          【解决方案5】:

          您是否愿意为这项工作研究(并可能在以后投资)一个单独的工具?

          如果是这样 - 看看这两个:

          两者都不是免费的 - 它们确实需要一些前期费用 - 但两者都可以创建 HTML、PDF、CHM 格式的优质文档 - 您可以选择。他们还从数据库中获取每一条信息——对象、约束和列上的默认值之间的所有关系,以及很多更多信息。

          在我看来,绝对值得最初的投资,如果你正在做任何严肃的工作。

          【讨论】:

          • 感谢您的建议,但我不只是想捕获有关数据库结构的元数据 - 我希望能够使用有关列的含义和用途的信息来注释架构和表。
          • SQL Doc 将允许您从其预览屏幕中注释架构组件。这只是使用了 MS_Description 扩展属性,这是描述架构的受支持方法。
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-06-04
          • 1970-01-01
          • 1970-01-01
          • 2011-09-02
          相关资源
          最近更新 更多