数据库表命名,复数或单数[重复]

2024-04-01

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

命名时应该用Capital,如Customer或customer吗?关于命名有什么最佳实践吗?


这个问题需要一场宗教战争。

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

  • 表是行的集合。
  • 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无需手动更改它。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

数据库表命名,复数或单数[重复] 的相关文章

  • Visual Studio 参考在多项目环境中未被复制

    我在 VS 2010 中有一个解决方案文件 其中有多个项目 现在 我有一个对该 dll 调用 MySql Data Entity dll 的引用 例如 我在解决方案中设置了以下项目 域 引用MySql Data Entity dll Dom
  • Laravel Eloquent 预加载:加入同一个表两次

    我有一个users表和一个约会桌子 在约会表中 我有两个用户 ID customer id staff id 我想检索所有带有客户姓名和员工姓名的约会 users table id name appointments table id st
  • where 子句中的双 %% ?

    我有一个 where 子句 如下例所示 WHERE subject LIKE chef AND dep LIKE psy 使用 1 或 2 符号有什么区别 我知道其中一个的含义 通配符 但不知道第二个添加的功能是什么 该查询可能是一个拼写错
  • 如何让 Debug.WriteLine 与其他进程一起工作?

    我有一个程序可以使用以下命令生成另外两个进程System Diagnostics Process 他们的输出被第一个程序捕获 players p Key StartInfo new ProcessStartInfo FileName arg
  • “解决方案的源代码控制之间似乎存在差异......”

    我们在 Visual Studio 2005 和 TFS 中经常遇到此错误 任何人都可以帮助我们查明此消息的原因吗 完整的消息是 解决方案的来源之间似乎存在差异 控制有关某些项目的信息以及 项目文件 为了解决这个差异 有必要检查 项目文件并
  • 重命名猫鼬中的字段[重复]

    这个问题在这里已经有答案了 我有两个 JSON 对象 每个对象都有一个名字字段 我想将名字重命名为名称 还想使用猫鼬将现有的名字值导入到名称 Schema const mongoose require mongoose const Sche
  • 缺少嵌入互操作类型属性

    在一个 C 项目中 我收到以下警告 警告 CS1762 创建了对嵌入式互操作程序集 Interop SomeLibrary dll 的引用 因为间接引用了程序集 ALibraryOfMine dll 创建的该程序集 考虑更改任一程序集的 嵌
  • 我应该检查代码中的数据库约束还是应该捕获数据库抛出的异常

    我有一个将数据保存到名为 作业 的表中的应用程序 Jobs 表有一个名为 Name 的列 该列具有 UNIQUE 约束 名称列不是主键 我想知道在尝试保存 更新新条目之前是否应该自己检查重复条目 或者最好等待数据访问层抛出异常 如果这个应用
  • 链接 .Net 程序集

    这都是假设 所以请耐心等待 假设我正在用 C 编写一个名为 Foo 的工具 输出是 foo exe 我发现了一些我喜欢使用的非常棒的库 称为 Bar 我可以在我的项目中将其引用为 bar dll 当我构建项目时 我的输出目录中有 foo e
  • 使用实体框架、代码优先方法解决结构问题

    我目前正在使用 EF 和代码优先方法从现有系统构建数据库 最好对 核心 类进行最小的更改 因此 我想找到 Structs 和 EF 的解决方法 是否可以以任何方式将 Struct 包装到类中 以便 EF 可以使用此 Struct 中的数据
  • 如何选择从数据集中进入数据表的列?

    作为数据工作的新手 我希望我能正确地提出这个问题 如何选择从数据集中进入数据表的列 我知道我可以使用 填充数据表 DataTable table dataSet1 Tables 0 但这会引入所有列 如何仅使用某些列填充数据表 我正在使用
  • 可以让Console显示中文吗?

    我一直想知道是否可以在控制台窗口中显示 UTF8 或 UTF16 中文文本 例如 Console WriteLine chinese 目前 它显示为 是否可以启动支持中文字符的控制台会话 urxvt 即 Unicode rxvt 是一个显示
  • 为 Windows 8 编写的应用程序可以在 Windows Phone 8 上运行吗?

    正如微软所说 Windows 8 和 Windows Phone 8 共享相同的代码库 如果我使用 Visual Studio 2012 RC 为 Windows 8 编写一个应用程序 我想知道我是否可以在 Windows Phone 8
  • 使用 LINQ 的 Silverlight 客户端数据库

    我正在创建一个浏览器外 silverlight 应用程序 并希望在客户端有一个数据库 我看过 sqlite 但似乎它不适用于 silverlight 如果我能使用 LINQ 那就太好了 我更喜欢免费的解决方案 但付费始终是一种选择 有什么建
  • 不使用 Django 的 Python 数据库(适用于 Heroku)

    令我惊讶的是 我没有发现其他地方提出过这个问题 简而言之 我正在编写一个应用程序 计划部署到云 可能使用 Heroku 它将执行各种网络抓取和数据收集 它将位于云中的原因是 我可以将其设置为每天自行运行 并将数据提取到数据库 而无需我的计算
  • 使用 SpreadsheetLight 进行行计数

    我正在寻找一个类似于 DataTable Rows Count 的函数 它可以与 SLDocument 一起使用来找出有多少行中有数据 SpreadsheetLight 中有可用的东西吗 还有其他方法可以实现这一目标吗 Brendan SL
  • 高负载应用程序的数据库可扩展性?

    我见过一些应用程序拥有集群 Web 服务器 例如 10 到 20 个服务器 以具有可扩展性 可以在其中分发 在网络服务器之间加载 但我总是看到所有网络服务器都使用单个数据库 现在考虑任何电子商务或铁路 Web 应用程序 其中有数百万用户在任
  • 如何获取sql server 2005中数据库连接的详细列表?

    如何获取sql server 2005中数据库连接的详细列表 使用系统存储过程sp who2
  • 脚本任务无法在 Visual Studio 2013 中打开编辑器

    我正在使用 SSIS 2014 和 Visual Studio 2013 当我单击脚本任务的 编辑脚本 按钮时 没有错误 没有任何反应 但脚本编辑器没有打开 我在我的机器上安装后什么也没发生 Microsoft Visual Studio
  • 通过开源 PCL 使用 API 查看 3D 点云

    我使用 ToF 飞行时间 相机来获取 XYZ 格式的深度数据 为了实现 3D 点云的可视化目的 我想使用开源 PCL 提供的 API 网址为http pointclouds org documentation tutorials pcl v

随机推荐