我想在我的宠物项目写文档。
我有30桌,几乎50次,在我的PostgreSQL数据库大约30功能(存储过程)。
我想看到的表(其视图和其功能)被使用。
我想看到的视图(其视图和其功能)被使用。
我想看看如果一个函数被另一个函数。
我想也写入每个对象的说明(表,视图和函数)
和字段的简要描述。
不久,我希望能够看到什么使用特定的对象和对象使用一个特定的对象。
我想用一个文本文件,并为每个对象。 我可以列出使用当前的和哪些是由当前使用的对象。
<pre>
Table aaaa
A short description
used by : view v_aaaa
id int primary key
name varchar(30) name of a...
================================
view v_aaaa
A short description
list of fields...
used by function f_aaaa
Depends on table aaaa
==============================
function f_aaaa
A short description
Parameters ( description, IN/OUT )
Depends on view v_aaaa
function fbbbb
==============================
function f_bbbb
A short description
Parameters
Called by function f_aaaa
我怕我的文档会取消同步快速想象我添加了一个功能f_cccc调用f_aaaa和f_bbbb。 我将不得不修改f_aaaa和f_bbbb DOC
我知道,UML介绍有关机构的关系(它做的,对吧???)。 但是,我想简单的东西,我不想遵循75小时练习......而且我不知道,你可以有实体和功能之间的“联系”,因为我想要的。
你有什么建议吗?
我使用PostgreSQL在Linux(Fedora的)。 如果你提出了一个工具,做到这一点,它必须与PostgreSQL的兼容:-)
对于我的代码文档,我使用Doxygen的。
谢谢
实际上,你可以通过查询数据库内部的“依赖”的信息收集一些这方面的信息。 如果事情依赖于另一个,这表明它使用它。 下面是一个示例查询,以给你一个想法如何遍历所涉及的两种结构:
SELECT
c1.oid as relid,
n1.nspname || '.' || c1.relname as relation,
c1.relkind,
c2.oid as relid,
n2.nspname || '.' || c2.relname as dependency,
c2.relkind
FROM
pg_depend d,
pg_class c1,
pg_namespace n1,
pg_class c2,
pg_namespace n2
WHERE
d.objid = c1.oid AND
c1.relnamespace = n1.oid AND
n1.nspname NOT IN('information_schema', 'pg_catalog') AND
n1.nspname !~ '^pg_toast' AND
d.refobjid = c2.oid AND
c2.relnamespace = n2.oid AND
n2.nspname NOT IN('information_schema', 'pg_catalog') AND
n2.nspname !~ '^pg_toast' AND
c1.oid != c2.oid
GROUP BY n1.nspname,c1.relname,c1.oid,c1.relkind,
n2.nspname,c2.relname,c2.oid,c2.relkind
ORDER BY n1.nspname,c1.relname;
所有这些内部位的信息可以在中找到系统目录文件。
我不为了看文件的依赖性。 文档自动过期。
我使用该工具。 目前我使用的产品从ApexSQL ,但我用展鹏工具过去。
只是画一个EAR图。 实体 - 关系图。
本教程应该给你一个很好的了解。 http://www.scribd.com/doc/7500847/entity-relationship-diagram
你有这样的一个http://www.getahead-direct.com/gwentrel.htm
编辑:
比方说你有一个多部未华CAR,那么你画一个方框CAR:
CAR
----------
id (int)
name (vchar)
numbSeats (int)
----------
GetCar
SetCar
DeleteCar
Thelast 3是你的职责。
可以考虑使用一个命名约定,以加强SQL对象相关性:
表格1
表2
vw_table1_byField1
vw_table1_byField1_table2
vw_table2
fn_table1
fn_table1_table2
我终于建立一个庞大的HMTL文件。
文件中包含了很多的锚,并可以很容易地导航到不同的对象。
这是一个大量的工作,但它正是我想要的:-)
文章来源: How do you document your database code to see dependencies between database objects? [closed]