Thứ Bảy, 17 tháng 10, 2015

                                             BÀI TẬP MÔN CƠ SỞ DỮ LIỆU

Quản lý khách hàng

Người thực hiện : Lê Thái Hòa                 MSV  :1400133
                               Nguyễn Mạnh Cường  MSV :1400088
                               Nhữ Công Vụ               MSV :1400132

Phần 1 : Thực trạng bán hàng hiện nay

          Thông qua quá trình tìm hiểu, khảo sát trực tiếp tại nhiều các nơi bán hàng hiện nay em thấy các nơi bán hàng cần quản lý về việc bán các mặt hàng, ví dụ như một công ty bán điện thoại như sau:
      - Khi bán hàng cử hàng sẽ lưu lại thông tin của khách hàng : mã khách hàng. tên khách hàng, địa chỉ số điện thoại
      - Mỗi lần bán hàng : cửa hàng sẽ tạo ra số hóa đơn để lưu trữ thông tin. Các đơn bán hàng bao gồm: số hóa đơn, tên mặt hàng bán, ngày bán, số lượng bán đơn giá, số tiền bán hàng
     - Mỗi hóa đơn sẽ do một nhân viên phụ trách việc tạo lập và lưu trữ tại thời điểm bán hàng. Thông tin các nhân viên như : mã nhân viên(mỗi nhân viên có một mã riêng), tên nhân viên, địa chỉ, giới tính, số điện thoại cũng được công ty lưu trữ để quản lý 

 Phần 2 : Xác định thuộc thể

     - NV(ma NV, ho ten, dia chi, ngay sinh gioi tinh, SDT)

     - HDBAN(ma HDBAN, ten mat hang, ngay ban, so luong, don gia, tong tien)
     - K_HANG(ma K_HANG, ho ten, dia chi, SDT K_HANG)

Phần 3 : Mối quan hệ giữa các thuộc thể



  mô hình liên kết


Phần 4 : Xác định thuộc thể

           - NV(ma NV, dia chi, ngay sinh, gioi tinh, SDT)
           -HDBAN(ma HDBAN, ten mat hang, ngay ban, so luong, don gia, tong tien)
           -K_HANG(ma K_HANG, ho ten, dia chi, SDT K_HANG)

Phần 5 : Câu lệnh truy vấn


Tạo bảng người quản lý:
CREATE TABLE IF NOT EXISTS `mydb`.`MANAGER` (
  `MA_ITEM` INT NOT NULL,
  `MA_NAME` VARCHAR(45) CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci' NOT NULL,  `MA_SALARY` INT NOT NULL,
  `MA_ADDRESS` VARCHAR(45) CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci' NOT NULL,
  PRIMARY KEY (`MA_ITEM`))
ENGINE = InnoDB;
Tạo bảng loại hàng:
-- -----------------------------------------------------
-- Table `mydb`.`KIND_OF_BOOK`CREATE TABLE IF NOT EXISTS `mydb`.`KIND_OF_BOOK` (
  `KB_ITEM` INT NOT NULL,
  `KB_NAME` VARCHAR(45) CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci' NOT NULL,
  PRIMARY KEY (`KB_ITEM`))
ENGINE = InnoDB
-- -----------------------------------------------------
-- Table `mydb`.`BOOKSHELF`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `mydb`.`BOOKSHELF` (
  `BS_ITEM` INT NOT NULL,  `BS_NAME` VARCHAR(45) CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci' NOT NULL,
  `BS_ADDRESS` VARCHAR(45) CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci' NOT NULL,
  `MANAGER_MA_ITEM` INT NOT NULL,
  `KIND_OF_BOOK_KB_ITEM` INT NOT NULL,
  PRIMARY KEY (`BS_ITEM`),INDEX `fk_BOOKSHELF_MANAGER1_idx` (`MANAGER_MA_ITEM` ASC),
  INDEX `fk_BOOKSHELF_KIND_OF_BOOK1_idx` (`KIND_OF_BOOK_KB_ITEM` ASC),
  CONSTRAINT `fk_BOOKSHELF_MANAGER1`
    FOREIGN KEY (`MANAGER_MA_ITEM`)
    REFERENCES `mydb`.`MANAGER` (`MA_ITEM`)
    ON DELETE CASCADE    ON UPDATE CASCADE,
  CONSTRAINT `fk_BOOKSHELF_KIND_OF_BOOK1`
    FOREIGN KEY (`KIND_OF_BOOK_KB_ITEM`)
    REFERENCES `mydb`.`KIND_OF_BOOK` (`KB_ITEM`)
    ON DELETE CASCADE
    ON UPDATE CASCADE)ENGINE = InnoDB;
Tạo bảng nhân viên
-- -----------------------------------------------------
-- Table `mydb`.`EMPLOYEE`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `mydb`.`EMPLOYEE` (
  `EMP_ITEM` INT NOT NULL,  `EMP_NAME` VARCHAR(45) CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci' NOT NULL,
  `EMP_SALARY` INT NOT NULL,
  `EMP_ADDRESS` VARCHAR(45) CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci' NOT NULL,
  `BOOKSHELF_BS_ITEM` INT NOT NULL,
  `MANAGER_MA_ITEM` INT NOT NULL,
  PRIMARY KEY (`EMP_ITEM`),  INDEX `fk_EMPLOYEE_BOOKSHELF_idx` (`BOOKSHELF_BS_ITEM` ASC),
  INDEX `fk_EMPLOYEE_MANAGER1_idx` (`MANAGER_MA_ITEM` ASC),
  CONSTRAINT `fk_EMPLOYEE_BOOKSHELF`
    FOREIGN KEY (`BOOKSHELF_BS_ITEM`)
    REFERENCES `mydb`.`BOOKSHELF` (`BS_ITEM`)    ON DELETE CASCADE
    ON UPDATE CASCADE,
  CONSTRAINT `fk_EMPLOYEE_MANAGER1`
    FOREIGN KEY (`MANAGER_MA_ITEM`)
    REFERENCES `mydb`.`MANAGER` (`MA_ITEM`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
ENGINE = InnoDB;Tạo bảng khách hàng:
-- -----------------------------------------------------
-- Table `mydb`.`CUSTOMER`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `mydb`.`CUSTOMER` (
  `C_ITEM` INT NOT NULL,  `C_NAME` VARCHAR(45) CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci' NOT NULL,
  `C_ADDRESS` VARCHAR(45) CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci' NOT NULL,
  PRIMARY KEY (`C_ITEM`))
ENGINE = InnoDB;

Tạo bảng hóa đơn nhập kho
-- -----------------------------------------------------
-- Table `mydb`.`INVOICES_IN`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `mydb`.`INVOICES_IN` (
  `IN_ITEM` INT NOT NULL,
  `IN_DATE` DATETIME NOT NULL,
  `EMPLOYEE_EMP_ITEM` INT NOT NULL,
  `PUBLISHER_PUB_ITEM` INT NOT NULL,
  PRIMARY KEY (`IN_ITEM`),
INDEX `fk_INVOICES_IN_EMPLOYEE1_idx` (`EMPLOYEE_EMP_ITEM` ASC),
  INDEX `fk_INVOICES_IN_PUBLISHER1_idx` (`PUBLISHER_PUB_ITEM` ASC),
  CONSTRAINT `fk_INVOICES_IN_EMPLOYEE1`
    FOREIGN KEY (`EMPLOYEE_EMP_ITEM`)
    REFERENCES `mydb`.`EMPLOYEE` (`EMP_ITEM`)
    ON DELETE CASCADE
    ON UPDATE CASCADE,
  CONSTRAINT `fk_INVOICES_IN_PUBLISHER1`
    FOREIGN KEY (`PUBLISHER_PUB_ITEM`)
    REFERENCES `mydb`.`PUBLISHER` (`PUB_ITEM`)
    ON DELETE CASCADE
    ON UPDATE CASCADE)
ENGINE = InnoDB;
Tạo bảng hóa đơn xuất cho khách hàng
-- -----------------------------------------------------
-- Table `mydb`.`INVOICES_OUT`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `mydb`.`INVOICES_OUT` (
  `OUT_ITEM` INT NOT NULL,
  `OUT_DATE` DATETIME NOT NULL,
  `EMPLOYEE_EMP_ITEM` INT NOT NULL,
  `CUSTOMER_C_ITEM` INT NOT NULL,
  PRIMARY KEY (`OUT_ITEM`),
  INDEX `fk_INVOICES_OUT_EMPLOYEE1_idx` (`EMPLOYEE_EMP_ITEM` ASC),
  INDEX `fk_INVOICES_OUT_CUSTOMER1_idx` (`CUSTOMER_C_ITEM` ASC),
  CONSTRAINT `fk_INVOICES_OUT_EMPLOYEE1`
    FOREIGN KEY (`EMPLOYEE_EMP_ITEM`)
    REFERENCES `mydb`.`EMPLOYEE` (`EMP_ITEM`)
    ON DELETE CASCADE
    ON UPDATE CASCADE,
  CONSTRAINT `fk_INVOICES_OUT_CUSTOMER1`
    FOREIGN KEY (`CUSTOMER_C_ITEM`)
    REFERENCES `mydb`.`CUSTOMER` (`C_ITEM`)
    ON DELETE CASCADE
    ON UPDATE CASCADE)
ENGINE = InnoDB;
Tạo bảng hàng bán:
-- -----------------------------------------------------
-- Table `mydb`.`BOOK`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `mydb`.`BOOK` (
  `B_ITEM` INT NOT NULL,
  `B_NAME` VARCHAR(45) NOT NULL,
  `B_AUTHORS` VARCHAR(45) NOT NULL,
  `B_COST` INT NOT NULL,
  `B_DATE` DATETIME NOT NULL,
  `B_NUMBER` INT NOT NULL,
  `KIND_OF_BOOK_KB_ITEM` INT NOT NULL,
  `B_NUMBER` INT NOT NULL,
  PRIMARY KEY (`B_ITEM`),
  INDEX `fk_BOOK_KIND_OF_BOOK1_idx` (`KIND_OF_BOOK_KB_ITEM` ASC),
  CONSTRAINT `fk_BOOK_KIND_OF_BOOK1`
    FOREIGN KEY (`KIND_OF_BOOK_KB_ITEM`)
    REFERENCES `mydb`.`KIND_OF_BOOK` (`KB_ITEM`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
ENGINE = InnoDB; 
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `mydb`.`INVOICES_IN_INCLUDE` (
  `INVOICES_IN_IN_ITEM` INT NOT NULL,
  `BOOK_B_ITEM` INT NOT NULL,
  `IN_NUMBER` INT NOT NULL,
  INDEX `fk_INVOICES_IN_has_BOOK_BOOK2_idx` (`BOOK_B_ITEM` ASC),
  INDEX `fk_INVOICES_IN_has_BOOK_INVOICES_IN2_idx` (`INVOICES_IN_IN_ITEM` ASC),
  PRIMARY KEY (`BOOK_B_ITEM`, `INVOICES_IN_IN_ITEM`),
  CONSTRAINT `fk_INVOICES_IN_has_BOOK_INVOICES_IN2`
    FOREIGN KEY (`INVOICES_IN_IN_ITEM`)
    REFERENCES `mydb`.`INVOICES_IN` (`IN_ITEM`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION,
  CONSTRAINT `fk_INVOICES_IN_has_BOOK_BOOK2`
    FOREIGN KEY (`BOOK_B_ITEM`)
    REFERENCES `mydb`.`BOOK` (`B_ITEM`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
ENGINE = InnoDB;
Bảng thể hiện mối quan hệ nhiều nhiều giữa hóa đơn nhập (một hóa đơn có thể có nhiều hàng và 1 hàng có thể có trong nhiều hóa đơn xuất cho khách hàng)
-- -----------------------------------------------------
-- Table `mydb`.`INVOICES_OUT_INCLUDE`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `mydb`.`INVOICES_OUT_INCLUDE` (
  `INVOICES_OUT_OUT_ITEM` INT NOT NULL,
  `BOOK_B_ITEM` INT NOT NULL,
  `OUT_NUMBER` INT NOT NULL,
  INDEX `fk_INVOICES_OUT_has_BOOK_BOOK1_idx` (`BOOK_B_ITEM` ASC),
  INDEX `fk_INVOICES_OUT_has_BOOK_INVOICES_OUT1_idx` (`INVOICES_OUT_OUT_ITEM` ASC),
  PRIMARY KEY (`INVOICES_OUT_OUT_ITEM`, `BOOK_B_ITEM`),
  CONSTRAINT `fk_INVOICES_OUT_has_BOOK_INVOICES_OUT1`
    FOREIGN KEY (`INVOICES_OUT_OUT_ITEM`)
    REFERENCES `mydb`.`INVOICES_OUT` (`OUT_ITEM`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION,
  CONSTRAINT `fk_INVOICES_OUT_has_BOOK_BOOK1`
    FOREIGN KEY (`BOOK_B_ITEM`)
    REFERENCES `mydb`.`BOOK` (`B_ITEM`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
ENGINE = InnoDB;


Không có nhận xét nào:

Đăng nhận xét