我想在SQL Server 2008 R2中创建一对一的关系.
我有两个表tableA
和tableB
,我设置tableB
的主键的外键引用其中tableA
的首要.但是当我首先使用Entity Framework数据库时,模型是1到0..1.
任何人都知道如何在数据库中创建真正的1对1关系?
提前致谢!
数据库设计问题:您何时决定使用1对1关系表?
我看到的其中一个地方是,例如,当你有一个User和UserProfile表时,人们会拆分它们而不是将所有列放在User表中.
从技术上讲,您可以将所有列放在一个表中,因为它们的关系是1对1.
我知道有人说对于UserProfile表,随着时间的推移你需要改变表来添加更多的列,但我真的不认为这是拆分表的强有力的理由.
所以,如果我要设计一个User表和UserProfile表,那么在一个表中执行它会更好吗?
我很难弄清楚何时在数据库设计中使用1对1的关系,或者是否有必要.
如果您只能在查询中选择所需的列,则有必要将表拆分为1对1关系.我想更新一个大表对性能的影响比一个较小的表更多,我确信它取决于表用于某些操作的重量(读/写)
因此,在设计数据库模式时,如何将一对一关系考虑在内?您使用什么标准来确定是否需要一个标准,而不使用标准有什么好处?
谢谢!
可能重复:
有没有时间使用数据库1:1关系有意义?
为了简单起见,我会直截了当地提出这个问题:是否应该避免数据库设计中的一对一关系或这是否可接受?
我知道这个"项目"的所有属性都可以在一个表中托管,但我觉得在通过ORM将我的数据库设计转换为业务对象时,它会使实体与不必要的属性混乱.
通过用户界面,希望这将描绘出更好的画面,我有一个主要形式,具有所有必要的属性.我将有一个允许用户点击它的按钮,它将显示一个新表单以附加额外的属性.不超过1个条目可以与主表单(实体)相关联,即它是0..1结束关系.
任何建议将被认真考虑.
让我首先说我不是数据库专家.我正在研究其他人编写的一些代码,我注意到表之间有很多1-1关系.这是一个例子:
tblPropertyRecord
pID
hasPhotos
hasVideo
comment
headline
tblPropertyLocation
ID
pID
country
region
city
zip
street_address
tblPropertyOther
ID
pID
upload_path
isApproved
isPaid
Run Code Online (Sandbox Code Playgroud)
这并不包含属性的每个字段 - 每个记录总共有大约35个字段,但是每个表都有,并且每个记录只能有一个条目1到1到1 ...我想这是描述的方式它?
这有什么好处,而不仅仅是拥有35个字段的tblPropertyRecord?我理解许多对1,1对多,多对多......但这似乎增加了混乱而没有真正的好处.