基本数据库关系

时间:2015-07-02 13:29:26

标签: database-design relational

我最近开了一家旅行社,我需要一个数据库,但还没有资金让专业人士完成......

在我做得更好之前,我们会做一件非常基本的事情。

我们从机场到酒店进行“转移”服务,并且我们安排了“旅行”。

到目前为止,我想我需要CustomersTransferTour OperationBooking表。

1)客户将拥有通常的个人信息

2)转移将包含timeflight numberairport等信息。

3)旅游业务是指我们为本次旅行安排的每一项活动,看起来像date/city/description(火车,火车,导游,入场费,出租车)/销售价格/净价/利润/供应商(例如谁提供指南,或提供出租车服务的公司)

4)预订将是主表,将包含

Booking No. | Date | Customer Name (Linked from the Customers table) | Type (Transfer or Tour) | Confirmed (Yes/No)| Invoice Sent (Yes/No)| Payment Received (Yes/No)

我不知道如何链接这些表。我尝试查找一些东西,但是我甚至不知道基础知识,并且需要某人的帮助才能至少开始并获得它的支持。

如果不是太多,请帮助我。

谢谢!

1 个答案:

答案 0 :(得分:1)

以下是您可以做的一个例子:

<强>客户

enter image description here

所有客户都将成为。

  • id_customer(自动增量):客户唯一ID。
  • desc_customer:客户名称。
  • status:如果您想提供不同的状态,例如1 - active, 2 - suspended, 3 - canceled, etc

我在一个名为Tour的表格中加入了TransferOperation

<强>操作

enter image description here 在那里,您将使用customer保存所有操作。

  • id_operation(自动增量):操作唯一ID。
  • id_customer:客户唯一ID。 -- Table Customer
  • desc_operation:操作说明。
  • otype:操作类型。 -- Table BookType
  • odate:营业日期。

<强> OperationType

enter image description here

在此表格中,您将添加所有类型的操作,例如TransfersTours

<强>预订

enter image description here

将保存所有付款,跟踪和确认。 (主要表格)。

  • id_book(自动增量):Book的唯一ID。
  • id_operation:操作的唯一ID -- Table Operation
  • bdate:预订日期。
  • btype:图书类型-- Table BookType
  • confirmed:预订确认。
  • invoice_sent:发票确认。
  • payment_sent:付款确认。

<强>的BookType

enter image description here

如果您想保留不同类型的预订,这将非常有用。

的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上完成的。