MySQL表的命名约定
我想得到一些意见,因为我正在考虑为我的新应用程序创建结构,我正在为表的名称而挣扎,所以我想也许你可以给我一些想法。应用程序有用户,用户可以创建项目,而项目可以有多个关键字。因此,用户与项目之间存在一对多关系,而项目与标记之间存在多对多关系 所以有了tableMySQL表的命名约定,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关键字之类的东西有点不好。如果您能给我一些建议,
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关键字
withid,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表真的是一个核心表吗?因为它依赖于一对多的用户?我担心的情况是,可能有两种项目具有不同的列,因此不能将它们放在一个表中。比如开发项目和用户项目。我只是在谈论我的基本命名约定。如果设计更复杂,那么命名模式可能需要更复杂才能反映这一点。但不要为这些事而苦恼。通过练习,它会变得更容易。