数据库表命名,复数或单数

标签 database visual-studio

<分区>

在命名数据库的表和模式时,最好使用单数或复数。 例如。应该是客户还是客户?

而且命名时应该是Customer之类的Capital还是customer?关于命名有什么最佳做法吗?

最佳答案

这个问题需要一场宗教 war 。

我毫不怀疑它应该是复数,因为...

  • 表格是行的集合。
  • SQL 语法变得更自然 - SELECT * FROM Customers 而不是 SELECT * FROM Customer
  • 类似于 OOP - 您有一个类 Customer 和一个名为 Customers 的列表或其他客户集合。
  • SELECT * FROM Customers AS Customer WHERE Customer.FirstName = 'John' - Customers 指的是整个表,而 Customer 指的是当前行。

消极的事情

在开发过程中,必须多次在单数和复数之间切换。您可以从概念模型开始 - 例如实体关系模型 - 自然选择是将实体命名为 Customer。从这个模型中,您可以生成一个数据库,并且必须将名称复数化才能获得 Customers 表。最后,您选择自己喜欢的 O/R 映射器,它必须再次将名称单数化以获得名为 Customer 的类。

如果您必须手动执行此操作,因为该工具缺乏支持(例如 .NET 4.0 之前的 EntityFramework),那么保持表名单数可能是一个合理的选择,但因此获得类 Customer 而不是 Customers 而不是手动更改。

关于数据库表命名,复数或单数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3254141/

相关文章:

python - 如何在 Django 中动态更改数据库?

database - 从 TableView 中获取数据并插入数据库

database - 轻量级 Groovy 持久化

c# - IIS CLI 为我的项目生成带有站点的 applicationhost.config

javascript - 如何在 Visual Studio 中导入 JavaScript 库?

php - 仅显示数据库中用户名的字母

mysql - 如何在 customer 下创建一个引用 employer 表中的 "id"的列

带有 visual studio 2017 的 Android - build.gradle 与 build.gradle.template

linux - 用于将调试器附加到在 Linux 上的 .NET Core 中运行的远程进程的 Visual Studio 扩展

.net - 系统.Data.SQLite.SQLiteException : Database is locked?