【发布时间】:2010-09-26 07:15:53
【问题描述】:
我有两个表,我们将它们称为Foo 和Bar,具有一对多关系,其中Foo 是Bar 的父级。 Foo 的主键是一个随序列自动生成的整数。
由于Bar 完全依赖于Foo,在以下约束条件下,我将如何设置Bar 的主键:
- Bar 的记录是以编程方式进行的 生成所以用户输入不能 依赖于标识符。
- 正在生成多个进程
酒吧记录所以任何涉及
Select Max()生成ID将 提出竞争条件。
我提出了两种我不满意的可能解决方案:
- 将表格视为 与一个多对多的关系 第三张表映射他们的记录 一起申请 代码处理插入记录所以 记录之间的映射 正确创建。我不喜欢 这是因为它使数据库设计 应用中的误导和错误 代码可能会导致无效数据。
- 给 Bar 两个列:
FooID和FooBarID并为FooBarID通过选择max(FooBarID)+1对于一些FooID,但是 如前所述,这创建了一个 比赛条件。
我很欣赏任何关于替代表格布局的想法。
【问题讨论】:
标签: database oracle database-design ddl