SQL TABLE命名。人与人

时间:2015-01-20 06:29:18

标签: sql sqlite

我希望在我的数据库中创建一个新的TABLE但遇到一个命名难题。我最初想将表格创建为

但后来我开始思考......我应该把桌子命名为

TABLE CREATE persons(name string, age integer)
or
TABLE CREATE people(name string, age integer)

3 个答案:

答案 0 :(得分:4)

这是有争议的,通常被认为是一个意见问题,但我建议总是使用单数。您的表名应为“人”。

  • 一个表应该被命名为它包含的'对象'。复数是“冗余的”,表格中可能总是包含0,1个或更多项目,使用单一参考标准将其全面标准化。
  • 您可以将表视为对象 - 某事物的“容器”。例如,如果你有一盒蘑菇,那么它就是一个'蘑菇盒',将它称为'蘑菇盒'是没有意义的。无论它有0,1还是多种蘑菇,它总是一个'蘑菇盒'。
  • 多个名字可能有更多的不规则性和复杂性,例如“ies”,“es”vs“s”或诸如“Status”和“Mice”vs“Mouse”等词。Singular更简单,更容易和更一致。
  • 如果你有相关的表,一个单一的命名约定会更好。假设您有一个表'学生'和另一个表'房间'。你可能有一个'StudentRoom'表。但是“StudentsRoom”或“StudentsRooms”这个名字令人困惑。
  • 当您引用表格中的列时,奇异有意义。采用以下示例:SELECT * FROM Person WHERE Person.FirstName ='John'比SELECT * FROM Persons更有意义,其中Persons.Firstname ='John',因为您正在谈论“一行”或“一个人”。 / LI>
  • Singular使用较少的字符:)

答案 1 :(得分:1)

人和人都可以用作人的复数,人是迄今为止最常见的两个词,并且在大多数普通情境中使用:“一群人”; “只有大约十个人”

如果您要将特定人员的详细信息[个人的属性]设为nameage ...那么我认为您应该使用“persons

TABLE CREATE persons(name string, age integer)

如果表格中包含People_countAvg_AgeTotalvote等字段,那么您应该选择表格名称“People

答案 2 :(得分:1)

在谈论集体小组时,的正确复数;除非以法律术语进行交谈,通常是指第一,第二和第三人或指定个人。 (见这里:https://english.stackexchange.com/questions/46294/correct-usage-of-persons-vs-people了解更多)

因为它们在同一个表中,所以它们遵循标准化形式,这表明它们是一个集体组,因此使用 people

这引起了一个关于命名的更大问题,一般规则是一致的。说到数据库模式,我通常将表名多元化,然后在SQL中使用单数别名 - 这样做更多,但更容易阅读,例如:

SELECT person.first_name, person.last_name
FROM   people person
WHERE  person.age > 18