“SQL词典”是解决这个问题的最佳方法吗?

时间:2009-10-02 09:43:16

标签: sql

通常在工作中我们会有一个场景,我们在数据库中有一个项目,我们需要分配多个工作人员。通常我们通过创建一个包含两列的新表来进行分配,第一个是项目ID,第二个是工作人员的ID,所以当我们要查看分配给员工的所有项目时,我们可以通过员工ID查询数据库或者如果我们想要查看分配给项目的所有员工,我们可以通过项目的ID进行查询。

这有点令人困惑,所以这是一个例子。假设我们的数据库中有一个充满电影的表格,每个都有ID,标题,描述等。无论出于何种原因,老板都想知道谁喜欢每部电影。如果只有一个人可以喜欢每部电影,我们就可以在桌子上再创一列,但是因为它可以让多个人喜欢同样的电影,这使得它有点困难。我们现在要做的是创建另一个只有两列的表,即电影ID和staffID。

这一切似乎都有效,但我真的很好奇,如果有更好的方法,甚至是设计数据库的另一种方法。我想不出一个,但我有一种琐碎的感觉,我们并没有真正遵循最佳实践。如果我们这样,那么你可以随意忽略这个问题,但我会喜欢那些经验丰富的专业人士的一些意见!

请对我温和 - 大约6个月前我才开始在.net / SQL(从商业环境中从头开始!)开始编程,所以我对这类东西不太了解。 :)

2 个答案:

答案 0 :(得分:6)

由于您的工作人员可能喜欢很多电影,并且很多员工可能会喜欢每部电影,因此您会有很多经典的关系。

最佳实践正如您所描述的那样,在SQL中,这是保存此数据的最佳和最常用的方式。

答案 1 :(得分:1)

是的,在创建关系表存在多对多关系的情况下,这是标准做法。您可以搜索{sql many to many relationship}以查看大量示例。