【问题标题】:Grouping tables within a MySQL database在 MySQL 数据库中对表进行分组
【发布时间】:2011-05-26 19:31:35
【问题描述】:

这是我的思考: 我有一些 ER 图,代表数据库中的数千个表。多个文件中的每一个中表示的实体具有由设计者决定的某种关联关系。虽然其他文件中的实体之间存在关系,但它们没有被映射。对于这种规模的数据库,这似乎是一种常见的做法。

我正在考虑在 MySQL 数据库中表示这些分组的想法。由于 SCHEMA 是 MySQL 中 DATABASE 的别名,因此我无法找到在数据库中对表进行分组的机制。

我想知道是否有人设计了一些他们想与我分享的创意分组概念。或者,更好的是,如果 MySQL 支持在数据库中对表进行分组的某种机制,请告诉我。 (我显然在研究中错过了它)

【问题讨论】:

  • 我还应该注意,我在单个 MySQL 部署中考虑了多个数据库。我觉得这个解决方案打破了 DATABASE 的语义含义。但是,这里欢迎对这种影响的创造性回答。

标签: mysql database schema


【解决方案1】:

您可以为要使用的表使用相同的前缀,例如,您有员工组,您创建表 emp_main 和 emp_Children 和 emp_tasks,然后您可以拥有另一个组,例如您销售的所有以它开头的物品_

【讨论】:

  • 表名前缀也是我首先想到的解决方案。我正在实施它。 (语义前缀很难提出)这很好用并且涵盖了分组问题。不利的一面是,没有执法。只要我是唯一修改架构的开发人员,它就可以很好地工作。无法保证其他开发人员会采用我的命名约定。
  • 这是一个新帐户,在我的声望达到 15 级之前我无法投票给你。但是,请 +1 来自我。
  • 感谢 mbenson 的评论
【解决方案2】:

与 Postresql 中的 Schema 可用于将表分组到不同的命名空间不同,MySQL 不支持以除前缀之外的任何其他方式来构造表。但是,如果您使用的是 MySQL Workbench 之类的管理工具,则可以使用 EER 层对表进行可视化分组: https://dev.mysql.com/doc/workbench/en/wb-using-layer-tool.html

【讨论】:

    【解决方案3】:

    MySQL 中没有层次结构的概念。 IE。您的数据库没有文件夹、容器或命名空间。

    MySQL 有 2 个概念:数据库(通常称为 Schema)和表。各种软件(如 PHPMyAdmin)将查看相似之处,并将根据名称本身将数据库分组到文件夹中。例如,如果您使用下划线 "com_sumeet" phpmyadmin 实际上会将它们组合在一起:

    【讨论】:

      【解决方案4】:

      MySQL有the MERGE Storage Engine,可以聚合几个结构相同的表。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-01-19
        • 2015-09-24
        • 2015-11-15
        • 1970-01-01
        • 2019-02-09
        • 2012-08-15
        • 1970-01-01
        相关资源
        最近更新 更多