MySQL表的命名约定

MySQL表的命名约定,mysql,sql,database,database-design,database-schema,Mysql,Sql,Database,Database Design,Database Schema,我想得到一些意见,因为我正在考虑为我的新应用程序创建结构,我正在为表的名称而挣扎,所以我想也许你可以给我一些想法。应用程序有用户,用户可以创建项目,而项目可以有多个关键字。因此,用户与项目之间存在一对多关系,而项目与标记之间存在多对多关系 所以有了tableusers我想projects表应该是users\u projects。但是关键词呢?是否应该是用户\项目\关键字?那么pivot表呢,因为我认为将它命名为用户\u项目\u到\u用户\u项目\u关键字之类的东西有点不好。如果您能给我一些建议,

我想得到一些意见,因为我正在考虑为我的新应用程序创建结构,我正在为表的名称而挣扎,所以我想也许你可以给我一些想法。应用程序有用户,用户可以创建项目,而项目可以有多个关键字。因此,用户与项目之间存在一对多关系,而项目与标记之间存在多对多关系

所以有了table
users
我想projects表应该是
users\u projects
。但是关键词呢?是否应该是
用户\项目\关键字
?那么pivot表呢,因为我认为将它命名为
用户\u项目\u到\u用户\u项目\u关键字
之类的东西有点不好。如果您能给我一些建议,我将不胜感激

编辑:
我一直认为一对多的关系应该被称为x_y,其中y属于x。这不是一个好的做法吗

我会有
用户
项目
关键字
项目_关键字
。我将使用外键来定义表之间的关系。例如,
projects
会有一个列,例如
createdby\u userid
,它指的是
users.user\u id
列。

一个想法:

可能有三本字典:

  • 用户
    应具有
    id
    和其他数据
  • 项目
  • 因此表
    关键字
然后创建“链接”(关系)表:

  • users\u projects
    带有列
    id,id\u user,id\u project
  • projects\u关键字
    with
    id,id\u项目,id\u关键字
编辑
也许正如@Laurence所提到的,将
id\u user
包含在表
projects
中确实是合理的。

Hmm我一直认为一对多关系的命名应该像此表中具有user\u id的users\u projects一样。在有管理项目的情况下会发生什么?我无法命名我的表项目,因为有这样的用户项目。嗯,很难:)我喜欢:项目,用户,项目用户。核心表有单字母别名(p,u),链接表有两个字母别名(pu)。链接表中的user\u id列链接到user表中的user\u id列。@但是这个projects表真的是一个核心表吗?因为它依赖于一对多的用户?我担心的情况是,可能有两种项目具有不同的列,因此不能将它们放在一个表中。比如开发项目和用户项目。我只是在谈论我的基本命名约定。如果设计更复杂,那么命名模式可能需要更复杂才能反映这一点。但不要为这些事而苦恼。通过练习,它会变得更容易。