使用 Sequelize ORM 工具将导致较少问题的 Mysql 数据库列命名

Posted

技术标签:

【中文标题】使用 Sequelize ORM 工具将导致较少问题的 Mysql 数据库列命名【英文标题】:Mysql Database Column naming that will cause less problems with Sequelize ORM tool 【发布时间】:2020-01-10 20:45:33 【问题描述】:

当测试团队将使用 ORM 工具和 cypress 来注入和删除数据时,在 mysql 数据库中命名列的最佳做法是什么? - 测试数据将在 JSON 中,而当前数据库在 MySQL。

例如,假设我有一家软件公司,它拥有管理系统(技术支持人员用户)、经销商的登录名,但我也有客户(用户)。

在我的表格中,我有以下列:

1-经销商

名字 |姓氏 |地址

2 名员工

名字 |姓氏 |地址

3-customeruser

名字 |姓氏 |地址

这是“理智的方式”吗?或者应该是:

1-经销商

dealer_first_name |经销商姓氏 |经销商地址

2 名员工

staff_user_first_name | staff_user_last_name |员工用户地址

3-customeruser

customer_user_first_name |客户姓氏 | customer_user_address

【问题讨论】:

我不喜欢在列名前加上表名。这样做似乎是为了解决问题。就个人而言,我认为有更好的方法来解决这些问题。例如,让我们遵循最佳实践模式并使用表名或别名来限定 所有 列引用,并且无论我们的列命名约定如何,“模糊列”错误都不会成为问题。跨度> 【参考方案1】:

您的模型将在您的返回 JSON 中具有特定名称,因此前端不会与 diff 对象中的重复属性/列命名混淆...但如果您需要,您也可以在 sequelize 中为您的列命名.. . 我有点想知道为什么你不只是有一个用户类型列等于员工/经销商/客户的用户表,如果值相同

【讨论】:

以上是关于使用 Sequelize ORM 工具将导致较少问题的 Mysql 数据库列命名的主要内容,如果未能解决你的问题,请参考以下文章

DAO vs ORM - 在 Sequelize.js 的上下文中解释的概念

节点Js将原始查询续集为sequelize ORM

使用 sequelize ORM 连接到 node.js 上的 Amazon RDS Postgres 数据库的问题

Node.js的ORM框架sequelize

如何在 Sequelize ORM 中插入 PostGIS GEOMETRY 点?

如何使用 Sequelize.js ORM 正确迁移 sqlite3 数据库?