0

データベースの設計に少し問題があります。企業のさまざまな階層構造の問題を解決する方法がわかりません。これらの情報を管理して保存する必要があります。すでに連絡を取っている、または連絡しようとしている人に関する情報を保存できるデータベースを作成しようとしています。また、特定の人物が勤務する会社に関する詳細も保存する必要があります。問題は、会社の構造が異なることです。誰かの仕事の学問的な役割を考えれば、学校や学部のある大学、研究機関かもしれません。たとえば、ある人がオックスフォード大学の何かの学部の一部である語学学校で働いています。現在、別の人が何かの部門で政府などに勤務している可能性があります。このデザイン関連の問題をどのように解決しますか? 私はそれをしなければなりません、そして私はまだそれについて十分に経験していません。混乱しないことを願っています。

4

2 に答える 2

2

あなたの質問に対する正確な答えは、あなたがまだ提供していない正確な要件に本当に依存します。そうは言っても、次のアイデアは、データベースモデルを開発するための悪い出発点ではないでしょう。

ここに画像の説明を入力してください

  • 組織は「ウッド」を形成し、そのウッドの各「ツリー」には、PARENT_ORGANIZATION_IDにNULLが含まれる「ルート」があります。
  • 1人の人が複数の組織で働くことができ、(もちろん)組織は複数の人を雇用することができます。この多対多の関係は、ジャンクションテーブル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 に答える