Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql-所有表的单序列表_Mysql_Database - Fatal编程技术网

Mysql-所有表的单序列表

Mysql-所有表的单序列表,mysql,database,Mysql,Database,我已经从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

我已经从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)
该数据库已经有超过600000条记录。 一个“过程”可以有许多“任务”。 我的问题是: “顺序”表和“流程/任务”表之间应该是什么关系? 流程表和任务表之间应该是什么关系? 如何在“序列”表中插入并在其他表中使用该“ID”


这是我的第一个问题,我对数据库还不熟悉,所以对于任何错误,我深表歉意

序列和过程之间的关系是一对一,序列和任务之间的关系也是一对一(以这种方式使用序列表的所有其他表也是如此)。这种关系的一面(流程和任务)不需要存在

过程和任务之间的关系是一对多的

您的插入将类似于

insert into Sequence values (0);
insert into Process values (last_insert_id(), ....);

insert into Sequence values (0);
insert into Task values (last_insert_id(), ....);

顺便说一下,在您的数据模型中,表进程现在有两个主键。当您将流程的序列用作任务中的外键时,它可能是一个更好的数据模型。

谢谢您的回答。在sequence table中,我还添加了一个字段来存储生成和使用序列的表名,现在如果两个用户插入,例如一个在进程表中,另一个在任务表中,当我使用Last_insert_ID()时,会有任何问题(混淆或其他问题)。没有问题。它们有不同的数据库会话
last\u insert\u id()
获取该会话中最后插入的id。其他会话中的插入无关紧要。很抱歉再次打扰您。我应该使用存储过程和事务,还是只使用简单的插入就可以了。还有,我的表应该是什么类型的(Innob、MyISAM等),或者干脆不管它是什么,不需要存储过程。您只需插入值即可。-使用InnoDB。MyISAM不是事务安全的,在MySQL的实际版本中,InnoDB的速度与MyISAM.Sie hat mich gerettet一样快。丹克维尔维尔酒店