0

我是第一次使用数据库(SQL CE 3.5),我不确定如何定义表之间的关系,以后(我认为)我将不得不使用连接来为一个字段选择一些值另一张桌子。

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

当我在 [MY TABLE] 中为 a_Text 定义值时全部实现时,我只想能够为 [Table A] 中定义的 a_Text 设置一个值(并再次为 b_Text 设置)。

4

1 回答 1

0

你在这里想要的是你的字段上的外键约束a_Text,它强制MY_TABLE/TABLE_A为那个特定的字段值建立一个链接。

这是一个数据库关系,因此应该在数据库级别定义,如果需要,在模型级别定义。大多数现代 ORM 技术,例如 EntityFramework/NHibernate,在表示模型级别的相同关系方面做得很好,或者至少让它变得非常简单——如果你直接通过数据库创建上下文,EF 会自动完成.

通过 VS 设计器使用 SQLCE 创建关系非常简单 -演练:创建 SQL Server Compact 数据库提供了在两个表之间添加关系的示例。


根据您的要求,我不建议您将值字段 ( a_Text)TABLE A作为 PK。最大的担忧之一是,如果您更新需要将该更改级联到其他引用表中的键。引入代理键并使您的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 回答