0

だから、私はデータベースを学んでいる(そして使っている)、そして今のところ私はそれを理解していると思う

今日、次の例で疑問が生じます。

IDを持つテーブルがあります(たとえば、名前と物理的な説明があり、当然、プライマリ自動インクリメント整数インデックスを持つオブジェクト)。そして、私はその時と相互作用するアイデンティティ(例えば人)を持っています)。

データベースでこれらのIDを分類する方法はありますか?たとえば、整備士がこれらのオブジェクトの非常に特定のセット(ツール、自動車部品など)とのみ対話するとします。したがって、オブジェクトの整備士による検索をそのセットに制限することは理にかなっています。

この問題に取り組むための自然な方法(もしあれば)についてのヒントはありますか?ありがとう

4

1 に答える 1

3

IDと説明を含むテーブルカテゴリが必要です

オブジェクトは多くのカテゴリを持つことができ、カテゴリは多くのオブジェクトを持つことができます。したがって、多対多の関係に直面しています。

ジャンクション テーブルと呼ばれる 3 番目のテーブルが必要です。このテーブルには、カテゴリの ID とオブジェクトの ID が含まれます。

デザインはこんな感じになります

Category
Id | Description

Object
Id | Description

Person
id | Type | ...

Categories_Objects
Id | CategoryId | ObjectId

次に、カテゴリ 1 になるメカニックのオブジェクトを選択する場合 (これは例です。最初に ID を見つける必要があります)。

あなたはこのような選択をします

SELECT Object.Description 
FROM Object 
     INNER JOIN Categories_Objects ON Object.id = Categories_Objects.ObjectID 
WHERE CategoryID = 1

また

SELECT Object.Description 
FROM Object 
     INNER JOIN Categories_Objects ON Object.id = Categories_Objects.ObjectID
     INNER JOIN Category ON Categories_Objects.CategoryId = Category.id
WHERE category.description = "Mechanic"

注:人が多くのカテゴリのツールを使用できる場合は、このような別のジャンクション テーブルが必要になります。

Persons_Categories
ID | PersonID | CategoryID
于 2012-11-08T19:47:22.983 に答える