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
- 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`
-- -----------------------------------------------------
`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