2013-11-02 78 views
0

我想获得一些意见,因为我正在考虑为我的新应用程序创建结构,并且我正在努力为表创建名称,所以我想也许您可以给我一些想法。应用程序有用户和用户可以创建项目,而项目可以有多个关键字。因此,用户与项目处于一对多关系,项目与标签之间存在多对多关系。MySQL表的命名约定

所以有了表users我想项目表应该是users_projects。但关键字呢?应该是users_projects_keywords?而数据透视表又如何,因为我认为把它命名为users_projects_to_users_projects_keywords或类似的东西是不好的。我会很感激一个提示。

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

+0

我喜欢:projects,users,projects_users。核心表具有单字母别名(p,u),并且链接表具有两个字母别名(pu)。链接表中的user_id列链接到用户表中的user_id列。 – Strawberry

+0

@Strawberry但是这个项目表真的是核心吗?由于它依赖于一对多的用户吗?我担心的情况是,可能存在两种具有不同列的项目,因此不能将它们放在一张表中。像开发项目和用户项目一样。 –

+0

我只是在谈论我的基本命名约定。如果设计更复杂,那么命名模式可能需要更复杂以反映这一点。但不要为这件事而痛苦。练习变得更容易。 – Strawberry

回答

0

我会有usersprojects,keywords,project_keywords。我会使用外键来定义表之间的关系。例如,projects将有一列,如createdby_userid,请参阅users.user_id列。

+0

嗯,我一直认为一对多的关系应该像这个表中的user_id一样命名为users_projects。什么时候会有管理项目?我不能命名我的表项目,因为有像这样的user_projects调用。嗯,这很难:) –

0

一个想法:

可能有三点字典:

  • users应该有id和其他数据。
  • projects也是如此。
  • 等表keywords

然后创建 “链接”(关系)表:

  • users_projects与列id, id_user, id_project
  • projects_keywordsid, id_project, id_keyword

编辑: 也许这确实是合理的将id_user纳入表正如@劳雷斯所说的那样,。