2

インタビューに参加したところ、次のシナリオといくつかのサンプル データを含む質問がありました。

ABCおよびのボスですD。 はとDのボスです。次にとのボスです。つまり、階層データがあります。EFFGH

別の言い方をすれば、プロジェクト マネージャー、チーム リーダー、そして開発者がいると言えます。次に、データを格納するテーブルを作成します。

さらに、開発者は後でプロジェクト マネージャーになることもできます。

では、テーブルはどのように作成すればよいでしょうか。テーブルにはどの列を含める必要がありますか?

私の答えは:

列を含むプロジェクト マネージャー用の 1 つのテーブルが必要でPM_IDあり、PM_NameどこPM_IDに主キーがあります。次に、チーム リーダー用に別のテーブルを作成する必要があります。そのテーブルではTL_ID、主キーとして、TL_NameおよびPM_ID外部キーとして持つ必要があります。

D_ID次に、開発者テーブルを主キーとして作成しD_Name、次にTL_ID外部キーとして作成する必要があります。

テーブルに正しいスキーマを提供したかどうか教えてください。

何か問題がある場合は、上記のケースの正しいスキーマを教えてください。

4

4 に答える 4

2

階層テーブルhttp://msdn.microsoft.com/en-us/library/bb677174%28v=sql.100%29.aspxが必要になる可能性が高く、cte クエリを使用して結果を表示します。

于 2012-09-29T13:15:39.363 に答える
1
  • 開発者がプロ​​ジェクト マネージャーになると、その人は開発者ではなくなりますか?
  • これらの関係はすべて、時間の経過とともに変化する可能性があります。どの関係が変更され、いつ変更されたかを知る必要がありますか?
  • すべての人に上司が必要ですか?
  • すべての上司には部下が必要ですか?
  • ボスが死ぬか去ると、そのボスの部下はどうなりますか?
  • 開発者は、一度に複数のチーム リーダーの下で働くことができますか?

場合によっては、面接の質問は構造についてではなく、要件のあいまいさを認識して解決する能力についての質問です。(また、ここで必ずしも関係があるわけではありませんが、ほとんどの人が何かを指して「階層」と言うとき、よく見ると「ネットワーク」が見つかります。)

于 2012-09-29T14:07:43.313 に答える
0

最も単純なテーブルには、この情報が(1つのテーブルに)含まれていると思います。

EmployeeID | LineManager | Role
-----------+-------------+-----
A          | A           | boss
B          | A           | pm
C          | A           | pm
D          | A           | pm
E          | D           | tl
F          | D           | tl
G          | F           | dev
H          | F           | dev
于 2012-09-29T13:40:15.503 に答える
0

この場合、テーブルにはそれ自体への外部キーが必要です。

于 2012-09-29T13:14:37.353 に答える