当前位置: 首页 > 面试题库 >

如何记录数据库

呼延宪
2023-03-14
问题内容

我已经开始在一个拥有数以百计的表和视图的数据库的地方工作,所有这些表和视图都具有隐秘的名称,只有很少的元音,并且没有文档。它们也不允许对数据库架构进行无谓的更改,我也不能触摸任何数据库,除非要在我自己的计算机上进行测试(该数据库会被删除并定期重新创建),因此我无法添加对任何人都有用的注释。

我尝试使用“
Toad”创建一个ER图,但是连续运行48小时后,它仍然看不到任何可见的东西,我需要我的电脑。我正在与其他一些新员工交谈,我们都建议,每当我们困惑某个特定表或其某些列的含义时,都应在开发人员Wiki中对其进行更新。

那么,执行此操作的好方法是什么?只是列出表/视图及其列,并在进行时将其填写?我要使用的基本工具是Toad,Oracle的“ SQL
Developer”,MS Office和Visio。


问题答案:

以我的经验,ER(或UML)图并不是最有用的工件-拥有大量的表,图(尤其是反向工程图)通常是一个大杂乱无章的混乱,没人能从中学到任何东西。

为了我的钱,一些良好的可读性文档(也许在系统的较小部分以图表的形式进行补充)将为您带来最大的收益。对于每个表,这将包括:

  • 该表的含义及其功能使用方式的描述(在UI中等)
  • 每个属性含义(如果不明显)的描述
  • 该表与其他人之间的关系(外键)的解释,反之亦然
  • 附加约束和/或触发器的说明
  • 如果还没有很好的记录,对与表格相关的主要视图和过程的附加说明

对于上述所有内容,请不要出于文档目的而进行文档记录-
重述显而易见的文档只会妨碍人们的操作。相反,请专注于起初使您感到困惑的内容,并花几分钟编写真正清晰,简洁的说明。这将帮助您仔细考虑,并且将 极大地
帮助其他首次遇到这些表的开发人员。

正如其他人提到的那样,有许多工具可以帮助您管理此问题,例如Enterprise
Architect,Red Gate SQL Doc以及各种供应商提供的内置工具。但是,尽管工具支持很有帮助(在更大的数据库中甚至是至关重要的),但努力
理解解释
数据库的概念模型才是真正的胜利。从这个角度来看,您甚至可以在一个文本文件中进行操作(尽管以Wiki形式进行操作可以使几个人进行协作,以逐步将其添加到该文档中-
因此,每当有人发现某些内容时,他们都可以将其添加到不断增长的主体中文档)。



 类似资料:
  • 问题内容: 我们通过Spring MVC公开了REST服务。我们使用a 记录异常。我们目前记录以下内容: 异常及其堆栈跟踪 网址 请求头 如果我们也可以记录JSON发布数据,则将使调试更加容易。关于如何获得此建议? 问题答案: 您需要一个过滤器,该过滤器可以在读取请求正文时保存请求正文,并在以后将保存的数据提供给异常记录器。 Spring包含做类似的事情。尽管它并不直接适合您的问题,但是您可以将其

  • 尝试使用Mockito为下面的代码编写单元测试,但我遇到了错误使用方法的异常。结果不为空,已验证,也进入循环。 这是我所写的: 例外情况:

  • 问题内容: 我正在寻找一种让python记录器模块登录数据库并在数据库关闭时回退到文件系统的方法。 所以基本上有两件事:如何让记录器记录到数据库,以及当数据库关闭时如何使记录器记录到文件中。 问题答案: 给自己编写一个将日志定向到相关数据库的 处理程序 。当它失败时,您可以将其从记录器的处理程序列表中删除。有许多方法可以处理故障模式。

  • 尝试站点parse.com将数据加载到数据库中 类DBHelper扩展了SQLiteOpenHelper{ 在模拟器上获取 java.lang.IllegalStateExcema:尝试重新打开已关闭的对象:SQLiteDatabase: /data/data/com.project.test/databases/myDBandroid.database.sqlite.SQLiteClosable

  • 本文向大家介绍如何从MySQL数据库中选择随机记录?,包括了如何从MySQL数据库中选择随机记录?的使用技巧和注意事项,需要的朋友参考一下 为此,您可以使用ORDER BY RAND LIMIT。让我们首先创建一个表- 使用插入命令在表中插入一些记录- 使用select语句显示表中的所有记录- 这将产生以下输出- 这是从MySQL数据库中选择随机记录的查询- 这将产生以下输出-

  • 问题内容: 使用rails或mysql查询删除mysql数据库中重复记录的最佳方法是什么? 问题答案: 您可以通过以下方式将不同的记录复制到新表中: