mysql - 模块化应用程序的数据库表命名约定

标签 mysql database-design naming-conventions

我正在构建一个模块化的 php 应用程序,使用 MySQL 作为我的数据库。

我更愿意使用 redbean作为我的 ORM 库。

第 2 版允许我介绍我自己的命名方式,而第 3 版删除了此功能并使用 default naming convention对于所有表。

我现在正在尝试确定一种命名表的方法,然后决定我是使用版本 3 还是版本 2。

我正在考虑以下架构:

  • 核心组件

    • 帐号
    • 电子邮件地址
    • 等等
  • 模块

    • 电子商务产品
    • 电子商务订单
    • account_ecommerce_order(与核心表的链接表)
    • ecommerce_order_ecommerce_product(模块表之间的链接表)

我应该在我的“核心”表前加上“core_”吗?

我喜欢为我的模块添加前缀,因为可以很容易地确定一个表是属于模块还是属于核心应用程序。有什么理由反对吗?

链接表让我有些困扰,因为它们可能太长了。有什么方法可以使它变得更好吗?

最佳答案

我决定使用上面的表名并迁移到 RedBean 3。

想了想,觉得核心组件的前缀用处不大。与 $account = R::dispense('account') 相比,输入 $account = R::dispense('core_account') 的时间也更长。

core_ 前缀不会添加任何语法值或增强可读性。

为我的模块添加前缀 ecommerce_product 等,实际上非常有用并且增强了可读性。当引用 ecommerce_product 时,可以立即知道它是电子商务模块的一部分。

关于mysql - 模块化应用程序的数据库表命名约定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9287464/

相关文章:

database-design - Cassandra - 一张大 table 与许多 table

database - 我需要多张 table 还是一张 table ?

java - 当我将可变对象变成不可变对象(immutable对象)时,方法名称应该如何更改?

vb.net - 没有匈牙利语的对象命名?

MySQL查找和替换——添加换行符

javascript - Node.js mysql 结果到数组

Java Enum 类型与 Hibernate

javascript - Node.js - 从母查询获取数据到嵌套查询

php - 变量 users_ids 与 user_ids 的正确名称

数据库架构 : How the relationship can be designed between user, 文件和文件夹?