私はプロジェクトで忙しく、私が遭遇したつまずきのブロックの 1 つは次のとおりです。
予約テーブルがありますが、請求書が発行される場合と発行されない場合があります (キャンセルなどの無関係なもののため)。1 (予約側) 対 0 または 1 (請求書側) の関係を強制するにはどうすればよいですか? ここに私がこれまで持っているものがあります:
CREATE TABLE IF NOT EXISTS `booking` (
`booking_id` int(11) NOT NULL AUTO_INCREMENT,
`voucher_id` int(11) NOT NULL,
`pickup_date_time` datetime NOT NULL, ...
PRIMARY KEY (`booking_id`,`voucher_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
そして、後で:
CREATE TABLE IF NOT EXISTS `invoice` (
`booking_id` int(11) NOT NULL,
`voucher_id` int(11) NOT NULL,
`invoice_number` int(11) NOT NULL,
`paid` tinyint(1) NOT NULL,
PRIMARY KEY (`booking_id`,`voucher_id`),
UNIQUE KEY `invoice_number` (`invoice_number`),
KEY `voucher_id` (`voucher_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
voucher_id
私がシステムで使用する他のものです。もPHPで生成されるinvoice_number
ため、これは関係ありません。
どんな助けでも大歓迎です!