这是您可以做的一个示例:
客户:
所有客户都将在哪里。
-
id_customer(自动增量):客户唯一 ID。
-
desc_customer:客户姓名。
-
status:如果你想设置不同的状态,比如1 - active, 2 - suspended, 3 - canceled, etc。
我将Tour 和Transfer 加入了一个名为:Operation 的表中。
操作:
在那里,您将使用 customer 保存所有操作。
-
id_operation(自动增量):操作唯一 ID。
-
id_customer:客户唯一 ID。 -- Table Customer
-
desc_operation:操作说明。
-
otype:操作类型。 -- Table BookType。
-
odate:营业日期。
操作类型:
在此表中,您将添加所有类型的操作,例如 Transfers 和 Tours。
预订:
所有付款、跟踪和确认都将保存在哪里。 (主表)。
-
id_book(自动增量):图书的唯一 ID。
-
id_operation:操作的唯一 ID -- Table Operation。
-
bdate:预定日期。
-
btype:图书类型-- Table BookType。
-
confirmed:书的确认。
-
invoice_sent:发票确认。
-
payment_sent:付款确认。
书籍类型:
如果您想保留不同类型的预订,这很有帮助。
DDL:
CREATE TABLE IF NOT EXISTS `mydb`.`Customer` (
`id_customer` INT NOT NULL,
`desc_customer` VARCHAR(45) NULL,
`status` INT NULL,
PRIMARY KEY (`id_customer`))
ENGINE = InnoDB;
CREATE TABLE IF NOT EXISTS `mydb`.`Operation` (
`id_operation` INT NOT NULL,
`id_customer` INT NULL,
`desc_operation` VARCHAR(45) NULL,
`otype` INT NULL,
`odate` DATETIME NULL,
PRIMARY KEY (`id_operation`))
ENGINE = InnoDB;
CREATE TABLE IF NOT EXISTS `mydb`.`OperationType` (
`id_otype` INT NOT NULL,
`desc_type` VARCHAR(75) NULL,
`active` BIT(1) NULL,
PRIMARY KEY (`id_otype`))
ENGINE = InnoDB;
CREATE TABLE IF NOT EXISTS `mydb`.`Booking` (
`id_book` INT NOT NULL,
`id_operation` INT NULL,
`bdate` DATETIME NULL,
`btype` INT NULL,
`confirmed` BIT(1) NULL,
`invoice_sent` BIT(1) NULL,
`payment_sent` BIT(1) NULL,
PRIMARY KEY (`id_book`))
ENGINE = InnoDB;
CREATE TABLE IF NOT EXISTS `mydb`.`BookType` (
`id_btype` INT NOT NULL,
`desc_btype` VARCHAR(45) NULL,
PRIMARY KEY (`id_btype`))
ENGINE = InnoDB;
那些 DDL 和 EER 设计是在 MySQL Workbench 上制作的。