2

私はSql Server 2012を使用してデータベースに取り組んでいます.私たちのデータモデルではUser、基本的なログイン情報、名前、住所などを含むタイプがあります.これらのユーザーの一部はTechnician、 a 、しかし、、 などUserの他のいくつかのプロパティ。RouteShip To Location

私の質問は、データベースを設計する際に、この状況をどのようにシミュレートするかです。私は2つのオプションを考えました。

  1. それらをリンクするために、Technicianテーブルにデータベースの PK への外部キーを用意します。Userこれに関する私の懸念は、ユーザーが技術者であるかどうかをどのように知ることができるかということです。ユーザーがログインするたびに、技術者テーブルでクエリを実行する必要があります。
  2. テーブル内のフィールドをUser技術者データベースの PK とリンクさせます。このフィールドが null、または -1、またはこのユーザーが技術者ではないことがわかっている場合。これに関して差し迫った問題は見当たりませんが、私はデータベース設計の専門家ではありません。

これらのどちらにも利点がありますか? もしそうなら、それはなぜですか? 現在、2 つのまったく異なる ID を持つ 2 つの異なるテーブルがあり、それらはまったくリンクされていないため、現在問題に直面しています。

4

2 に答える 2

1

ORM のやり方に慣れておくとよいでしょう。ORM を使用しなくても。いくつかのオプションが表示されます。

http://nhibernate.info/doc/nh/en/#inheritance

http://ayende.com/blog/3941/nhibernate-mapping-inheritance

于 2013-10-23T01:52:21.667 に答える