发布
社区首页 >问答首页 >与DataSets实现“一对多”关系

与DataSets实现“一对多”关系
EN

Stack Overflow用户
提问于 2014-08-17 11:48:25
回答 1查看 1.2K关注 0票数 0

我有两张表,一张是病人的信息,另一张是每个病人的笔记。(一个病人,一个病人的许多笔记)。

考虑到这一点,在设计器中(通过右键单击所选的DataSet来访问),我如何创建一对多的关系?我以前从没做过这种事。

其次,对于病人备注表,如何使用SQL语法向病人记录添加备注?注意,这不是更新现有的,而是使用唯一的患者ID号作为引用向patientNotes表中添加一个全新的通知(因此只有特定的患者有添加到它们中的注释,而不是 everyone )。

EN

回答 1

Stack Overflow用户

发布于 2014-08-17 12:50:10

从技术上讲,你不需要做任何事情来建立一对多的关系。您只需将这两个表设置为您拥有的表,并按照您的意愿使用它们。我在数据仓库工作,不幸的是,我们很多这样的关系并没有用任何类型的键或约束来形式化。

正确的方法是在patientNotes表的病人ID列上实现外键约束。如果病人ID存在于病人表中,FK只允许您将数据插入到patientNotes中。如果您尝试将一个便笺插入到您的表中,而该表中没有病人ID,则插入将失败,SQL引擎将给您一个错误。请注意,要创建FK的must表上的列必须是主键。

插入数据将与任何其他插入一样进行:

代码语言:javascript
代码运行次数:0
复制
INSERT INTO dbo.patientNotes (patientId, NoteText)
VALUES(4265, 'During his 8/14/2014 visit, Mr. Cottinsworth complained of chest pains. Evidently he has been wearing a lady''s corset to hide his large gut. Advised the very portly Mr. Cottinsworth to discontinue corset use'

您可以将其抛入SP中,将其放入代码中,并为patientId和NoteText使用参数,但是您希望这样做。

至于在Visual中以图形方式完成这一切,我在那里没有多大帮助。我通常使用TSQL编辑器并键入我想要对DB做什么。我相信在Visual上有很多关于如何设置FKs的教程。

进一步读:

http://msdn.microsoft.com/en-us/library/ms189049.aspx

http://www.scarydba.com/2010/11/22/do-foreign-key-constraints-help-performance/

what are the advantages of defining a foreign key

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25348910

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档