0

我对数据库设计有一个小问题。我不知道如何解决我必须处理和存储这些信息的公司的不同层次结构的问题。我正在尝试制作可以存储我已经联系过或将要联系的人的信息的数据库。我还需要存储有关特定人员工作的公司的详细信息。问题是公司有不同的结构。如果我考虑某人工作的学术角色,它也可能是一所拥有学校和学院、研究机构的大学。例如,一个人在牛津大学的语言学院工作,该学院是某事学院的一部分。现在,另一个人可能在某事部为政府等部门工作。您将如何解决这个与设计相关的问题?我必须这样做,但我对它还不太熟悉。我希望它不会令人困惑。

4

2 回答 2

2

您问题的确切答案实际上取决于您尚未提供的确切要求。话虽如此,以下想法可能是开发数据库模型的不错起点:

在此处输入图像描述

  • 组织形成一个“木头”,该木头中的每个“树”都有“根”,PARENT_ORGANIZATION_ID 为 NULL。
  • 一个人可以为多个组织工作,(当然)一个组织可以雇用多个人。这种多对多关系由联结表 WORKS_AT 表示。
于 2012-12-12T19:01:30.157 回答
1

联系人的组织可能具有不同类型的结构这一事实是否与您的数据库设计相关,这并不是很清楚。

我将从以下内容开始:

CREATE TABLE Contact (
  ContactId int,
  OrganizationId int,
  LastName varchar(50),
  FirstName varchar(50),
  etc...
)

CREATE TABLE Organization (
  OrganizationId int,
  OrganizationTypeId int,
  Name varchar(50),
  StreetAddress varchar(100),
  etc...
)

CREATE TABLE OrganizationType (
  OrganizationTypeId int,
  Name varchar(50),
  NonProfit bit,
  etc...
)

在上述场景中,您可以将联系人与特定组织相关联,如果这对您很重要,您可以根据不同的类别对组织进行分类。

于 2012-12-12T18:53:52.127 回答