English 中文(简体)
如何更新另一个表格中作为外国钥匙的表格的主要关键内容?
原标题:How to Update the primary key of table which is referenced as foreign key in another table?
  • 时间:2010-05-12 12:21:50
  •  标签:
  • c#
  • sql

附录

Table "Person" having 
    "SSN",
    "Name",
    "Address"

页: 1

Table "Contacts" having
    "Contact_ID",
    "Contact_Type",
    "SSN" (primary key of Person)

类似情况

Table "Records" having
    "Record_ID",
    "Record_Type",
    "SSN" (primary key of Person)

现在我想,当我改变或更新独立人士网络时,就会相应改变其他2个表格。

  1. If anyone can help me with a trigger for that
  2. Or how to pass foreign key constraints for tables
最佳回答

仅就UPDATECASCADE加入外国主要制约因素。

问题回答

最好是表的主要关键点永远不会改变。 如果您期望SSN改变,你就应当使用不同的主要钥匙,并将SSN作为个人表中的正常数据栏。 如果现在太晚才作出这一改变,你可以补充一下美国人口与发展论坛对外国的主要制约因素。

如果你们有这样变化的PK,那么你需要看桌设计,像身份一样使用PK。

在您的问询中,有一张<代码>Person的表格,该表可以是许多表格的FK。 此处为<代码>。 ON UPDATECASCADE可能有一些严重问题。 数据库Im在工作时有300多处参考(FK)来查阅我们相应的表格,我们跟踪每个人在不同表格中所做的一切工作。 如果我在个人桌上插入一行,然后试图再次删除(在任何其他桌子中不会使用,而是新式),删除时将使用<代码>Msg 8621,第17级,第2行。 页: 1 查询处理器在优化电离层时断裂。 请简化询问。 因此,我可以想象一下<代码>。 无论是在你获得许多科索沃法郎时,还是当你获得很多科索沃法郎时,都会工作。

www.un.org/Depts/DGACM/index_spanish.htm 我永远不会提供敏感数据,如SSN a PK.。 卫生保健公司之所以这样做,是因为隐私问题而出现痛苦的转变。 我希望你们不会有网 the,并且拥有一个叫做SSN、具有实际价值的GET或POST变量! 或者在每份报告中展示《国家功能说明》,或将缩短所有旧的印刷报告,并限制查阅每份报告的人。

诚然,假定SSN是<代码>Person表的主要关键,我(当然是交易):

  • create a brand new row with the new SSN, copying all other details from the old row.
  • update the columns in the other tables to point to the new row.
  • delete the old row.

现在,这实际上是一个很好的例子,说明如果数据可以改变,你为什么不把真实数据作为表格的对照参考。 如果你用人工一栏把他们捆绑在一起(而且只把SSN存放在一个地方),你就没有问题。

十年更新和删除非常危险。 如果你有100万儿童记录,你可以最终解决一个严重的锁定问题。 您应编篡最新情况,删除。

如果能够避免的话,你就永远不应使用一支具有变革潜力的PK。 你们也不应该使用SSN作为PK,因为它永远不应储存在你的数据库中。 除非你公司愿意在成为意外盗窃事件的起因时被起诉。 这不是一条设计缺陷,因为这是遗产,我们没有时间固定下来。 如果有人以另一种方式偷窃你的背书录音带或将避风港带走,则这种设计缺陷可能会破坏你的公司(其中大多数是内部偷窃行为)。 这是紧迫的——现在必须确定设计缺陷。

SSN也是一个坏的候选人,因为它改变了(例如,当他们成为身份盗窃的受害者时,人们会改变他们)。 加上一台 in,其性能将比9位数的PK更快。





相关问题
Anyone feel like passing it forward?

I m the only developer in my company, and am getting along well as an autodidact, but I know I m missing out on the education one gets from working with and having code reviewed by more senior devs. ...

NSArray s, Primitive types and Boxing Oh My!

I m pretty new to the Objective-C world and I have a long history with .net/C# so naturally I m inclined to use my C# wits. Now here s the question: I feel really inclined to create some type of ...

C# Marshal / Pinvoke CBitmap?

I cannot figure out how to marshal a C++ CBitmap to a C# Bitmap or Image class. My import looks like this: [DllImport(@"test.dll", CharSet = CharSet.Unicode)] public static extern IntPtr ...

How to Use Ghostscript DLL to convert PDF to PDF/A

How to user GhostScript DLL to convert PDF to PDF/A. I know I kind of have to call the exported function of gsdll32.dll whose name is gsapi_init_with_args, but how do i pass the right arguments? BTW, ...

Linqy no matchy

Maybe it s something I m doing wrong. I m just learning Linq because I m bored. And so far so good. I made a little program and it basically just outputs all matches (foreach) into a label control. ...

热门标签