我已经从Firebird数据库在Mysql中创建了一个数据库。 在数据库中有一个公共序列表(Common_ID),它为所有表生成序列(数据库中有45个表)。一些表是
Table1 = Sequence (ID Auto-increment)-The Common Sequence Table
Table2 = Process (Sequence, Process_Number(Unique), Category_Name)
Table2 = Tasks (Sequence, Barcode(Unique), Process_Number(sequence from Process Table), Product_Name)
此数据库已有超过600,000条记录。 一个"过程"可以有很多"任务"。 我的问题是: "序列"之间应该是什么关系?表和"流程/任务"表? 流程表和任务表之间应该有什么关系? 我如何插入"序列"表和使用" ID"在其他表中?
这是我的第一个问题,我是数据库新手,所以对任何错误道歉。
答案 0 :(得分:0)
序列和过程之间的关系是一对一的,序列和任务之间的关系也是一对一的(并且与以这种方式使用序列表的每个其他表相同)。这种关系的一方(Process resp.Task)不需要存在。
流程与任务之间的关系是一对多的。
您的插入内容就像
insert into Sequence values (0);
insert into Process values (last_insert_id(), ....);
insert into Sequence values (0);
insert into Task values (last_insert_id(), ....);
顺便提一下,在您的数据模型中,表Process现在有两个主键。当您在“任务”中将进程的序列用作外键时,它可能是更好的数据模型。