有关管理给定数据库模型的大量数据库表的提示

时间:2011-10-13 14:04:08

标签: mysql database-design complexity-theory diagram

我正在使用超过60个表的MySQL数据库。我使用MySQL工作台进行数据库建模。我已将模型分解为几个图表。

但是我发现很难管理这么多表。

在处理数据库模型时,是否有人可以提供有关如何管理大量表的建议?

例如,单个图表应包含的最大表数是多少?

是否有关于如何将模型分解为不同图表的指南?我想每个图表都应该与应用程序中的模块相对应。

除了将模型分解为几个图表之外,还有其他方法可以管理模型的复杂性吗?

4 个答案:

答案 0 :(得分:3)

60并不是那么多。

我肯定会为模型制作一个整体图表。

如果您发现模型中有不相交的部分未链接到其余部分,那么这些部分也可以获得自己的图表

然后,一系列小主题相关的图表可能对最终用户文档有用

答案 1 :(得分:3)

60不是特别多的表,但我理解你的问题。

图表应包含需要很好理解的表格。不多也不少。但是,您应该考虑的是如何将这些表组织成更多功能单元,以使您的图表更易于理解。

例如,假设您正在使用客户,订单,订单项和付款方式开具发票系统。这与您的库存系统有关,包括SKU,供应商,当前库存,未结货物等。在对库存部分进行建模时,即使您可能需要来自客户或订单项的字段,也可以将其作为单个对象放入图表中。它使图表更容易建模。

如果您始终在同一结构中需要相同的信息,那么视图实际上将是这些集团对象的物理表示。例如,订单项总是需要获取订单状态或客户名称。创建一个视图,然后使用它来表示图中的3个表。

地图不是领土。想想你想用每个图表代表什么以及如何轻松地表示它。如果您可以指向另一个可以解释它的图表,那么图表不一定需要包含它将要在其上使用的每个表格。

答案 2 :(得分:2)

分而治之。

逻辑命名空间减少了必须直接处理数据库的每个人的心理负担。标准SQL有一种方法可以解决这个问题:SQL模式。

了解其他平台如何支持SQL模式。 (How PostgreSQL supports SQL schemas。)MySQL对SQL模式有着特殊的支持。 (也就是说,没有,真的。)在MySQL中,CREATE SCHEMA创建了一个数据库。这不是你想要的。 (MySQL不容易在数据库中强制实施外键约束。)

由于SQL模式本质上是一个命名空间,因此您可以通过在表名前加上“模式名称”来模仿某些对SQL模式的使用。因此,如果您正在构建会计系统,则可以将所有应收帐款表分组到AR“架构”中,将所有应付帐款表分组到AP“架构”中,依此类推。您可以通过在表的名称前加上“AR”或“AR_”,“AP”或“AP_”等来做到这一点,等等。

这有两种方式来近似SQL模式。它首先按逻辑组织表,然后按字母顺序组织表。它允许在多个“模式”中使用相同的“表”名称。 (作为“AR_employees”和“AP_employees”。)

我听说有人支持MySQL 6.something中的联合表的外键。但如果它像MySQL对外键的传统支持那样,它对你没有帮助。

答案 3 :(得分:1)

除了将数据库划分为相关表组之外,您无法做太多事情。

话虽这么说,你可以做一些一些的事情来帮助管理事情,例如用“类型”对表格进行颜色编码,例如

  1. 关联表(实际上只是多人关系的那些)
  2. 查找表(仅包含值信息且不是数据库核心的那些)