当前位置:  开发笔记 > 编程语言 > 正文

一对多关系中的标识符

如何解决《一对多关系中的标识符》经验,为你挑选了1个好方法。

我有两个表,我们会打电话给他们Foo,并Bar与一对多的关系,其中Foo是的父Bar.Foo的主键是使用序列自动生成的整数.

由于Bar完全取决于Foo如何设置Bar给定以下约束的主键:

以编程方式生成Bar的记录,因此不能依赖用户输入标识符.

多个进程正在生成Bar记录,因此任何涉及 Select Max()生成a的内容ID都会出现竞争条件.

我想出了两个我不满意的可能解决方案:

将表视为与第三个表的多对多关系,将第三个表映射到一起并让应用程序代码处理插入记录,以便正确创建记录之间的映射.我不喜欢这样,因为它使数据库设计误导,应用程序代码中的错误可能导致无效数据.

给Bar两个colunms:FooID并 通过选择for some 来 FooBarID生成一个值 ,但如前所述,这会创建一个竞争条件.FooBarIDmax(FooBarID)+1FooID

我很欣赏任何替代表格布局的想法.



1> 小智..:

为Bar提供与Foo相同的自动主键.将外键FooID列添加到Bar.

除非我遗漏了某些东西,否则它似乎没有理由不起作用.

推荐阅读
围脖上的博博_771
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有