0

私は初めてデータベース (SQL CE 3.5) を扱っていますが、テーブル間の関係を定義する方法がわかりません。後で (と思います)、結合を使用して 1 つのフィールドの値を選択する必要があります。別のテーブル。

_________       __________    __________
MY TABLE|      | TABLE A |   | TABLE B |
---------      |---------|   |---------|
OrderID |      | a_Text  |   | b_Text  |   
---------      |---------|   |---------| 
a_Text  |
---------
b_Text  |
---------

[MY TABLE] で a_Text の値を定義するときにすべて実装されている場合、[Table A] (および b_Text) で定義されているように a_Text の値を設定できるようにしたいだけです。

4

1 に答える 1

0

ここで必要なのは、特定のフィールド値の間のリンクを強制するフィールドの外部キー制約ですa_TextMY_TABLETABLE_A

これはデータベースリレーションシップであるため、データベース レベルで、必要に応じてモデル レベルで定義する必要があります。EntityFramework/NHibernate などの最新の ORM テクノロジのほとんどは、モデル レベルで同じ関係を表すのに非常に優れているか、少なくともそうすることが非常に簡単になります。データベースを介して直接コンテキストを作成すると、EF は自動的にそれを行います。 .

VS Designer を介して SQLCE を使用してリレーションシップを作成するのは非常に簡単です -ウォークスルー: SQL Server Compact データベースの作成では、2 つのテーブル間にリレーションシップを追加する例を示します。


要件に基づいて、値フィールド ( a_Text) をTABLE APK として使用することはお勧めしません。最大の懸念事項の 1 つは、他の参照テーブル全体にその変更をカスケードする必要があるキーを更新する場合です。代理キーを導入して、a_Textフィールド自体を一意のキーにする方がはるかに柔軟です。

  My Table      Table A    Table B
  --------      -------    -------
  OrderID       a_ID       a_ID
  a_ID          a_Text     a_Text
  b_ID
于 2013-03-04T14:33:20.100 に答える