【问题标题】:Basic database relations基本数据库关系
【发布时间】:2015-09-20 15:05:55
【问题描述】:

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

一个非常基本的事情会做,直到我能把它做得更好。

我们提供从机场到酒店的“接送”服务和“旅游”服务,一切由我们安排。

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

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

2) 转移将包含诸如timeflight numberairport 之类的信息。

3)旅游运营是指我们为这次旅游安排的每一项活动,它看起来像date/city/description(火车到,火车从,导游,入场费,出租车)/销售价格/净价/利润/供应商(例如谁在提供导游,或者是哪家公司提供出租车服务)

4) Booking 将是主表并包含

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 比多或多比任何我尝试查找的东西,但我什至不知道基础知识,需要有人的帮助才能至少开始并掌握它。

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

谢谢!

【问题讨论】:

    标签: database-design relational


    【解决方案1】:

    这是您可以做的一个示例:

    客户

    所有客户都将在哪里。

    • id_customer(自动增量):客户唯一 ID。
    • desc_customer:客户姓名。
    • status:如果你想设置不同的状态,比如1 - active, 2 - suspended, 3 - canceled, etc

    我将TourTransfer 加入了一个名为:Operation 的表中。

    操作

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

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

    操作类型

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

    预订

    所有付款、跟踪和确认都将保存在哪里。 (主表)。

    • 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 上制作的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-05-28
      • 1970-01-01
      • 1970-01-01
      • 2018-02-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-15
      相关资源
      最近更新 更多