mysql声明两个外键_mysql – 一次声明多个外键还是单独声明它...

我有一个名为Order_List的表,其中包含一个订单列表.每列包含一个外键,该外键引用订单表中订单的主键.我的问题是,声明这些外键的最佳方法是什么.使用MySQL Workbench我发现了两种方法……

方法#1

CREATE TABLE IF NOT EXISTS 'mydb'.'Order_List' (

'idOrder_List' INT UNSIGNED NOT NULL AUTO_INCREMENT ,

'orderID01' INT UNSIGNED NULL ,

'orderID02' INT UNSIGNED NULL ,

'orderID03' INT UNSIGNED NULL ,

'orderID04' INT UNSIGNED NULL ,

PRIMARY KEY ('idOrder_List') ,

INDEX 'fk_Order_List_1' ('orderID01' ASC, 'orderID02' ASC, 'orderID03' ASC, 'orderID04' ASC) ,

CONSTRAINT 'fk_Order_List_1'

FOREIGN KEY ('orderID01' , 'orderID02' , 'orderID03' , 'orderID04' )

REFERENCES 'mydb'.'Order' ('idOrder' , 'idOrder' , 'idOrder' , 'idOrder' )

ON DELETE NO ACTION

ON UPDATE NO ACTION)

ENGINE = InnoDB

方法#2

CREATE TABLE IF NOT EXISTS 'mydb'.'Order_List' (

'idOrder_List' INT UNSIGNED NOT NULL AUTO_INCREMENT ,

'orderID01' INT UNSIGNED NULL ,

'orderID02' INT UNSIGNED NULL ,

'orderID03' INT UNSIGNED NULL ,

'orderID04' INT UNSIGNED NULL ,

PRIMARY KEY ('idOrder_List') ,

INDEX 'fk_Order_List_1' ('orderID01' ASC) ,

INDEX 'fk_Order_List_2' ('orderID02' ASC) ,

INDEX 'fk_Order_List_3' ('orderID03' ASC) ,

INDEX 'fk_Order_List_4' ('orderID04' ASC) ,

CONSTRAINT 'fk_Order_List_1'

FOREIGN KEY ('orderID01' )

REFERENCES 'mydb'.'Order' ('idOrder' )

ON DELETE CASCADE

ON UPDATE CASCADE,

CONSTRAINT 'fk_Order_List_2'

FOREIGN KEY ('orderID02' )

REFERENCES 'mydb'.'Order' ('idOrder' )

ON DELETE NO ACTION

ON UPDATE NO ACTION,

CONSTRAINT 'fk_Order_List_3'

FOREIGN KEY ('orderID03' )

REFERENCES 'mydb'.'Order' ('idOrder' )

ON DELETE NO ACTION

ON UPDATE NO ACTION,

CONSTRAINT 'fk_Order_List_4'

FOREIGN KEY ('orderID04' )

REFERENCES 'mydb'.'Order' ('idOrder' )

ON DELETE NO ACTION

ON UPDATE NO ACTION)

ENGINE = InnoDB

第一种方法结合了声明.第二种方法将其拆分.哪一个更好?一个人在另一个人身上是否有任何固有的弱点?谢谢!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值