Thiết kế cơ sở dữ liệu quản lý bán hàng
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC DÂN LẬP CỬU LONG KHOA CÔNG NGHỆ THÔNG TIN ___________ ___________ ĐỀ TÀI: Đồ án java Sinh viên thực hiện: MSSV: Phan Duy Cảnh 04.020.017 Trần Thanh Hóa 04.020.067 Tiêu Văn Tiếng 04.020.228 2007 2 3 SO DO PHAN RA CHUC NANG HE THONG CHUONG TRINH QUAN LY BAN HANG CAP N H AT HAN G HOA CAP N H AT KHACH H AN G CAP N H AT H OA DON VA CHI TIET HOA DON CAP N H AT BAO H ANH VA CH I TIET BAO HAN H XEM DAN H M U C HAN G HOA THEM SUA XOA THEM SUA XOA XEM DAN H MU C KHACH H AN G THEM SUA XOA THEM SUA XOA A . LƯC ĐỒ CSDL 1. Cơ sở dữ liệu : Có nội dung sau : KHACH HANG MAKH TENKH DIACHI DIENTHOAI FAX EMAIL HANGHOA MAH TENH GIA SOLUONG BAOHANH HANGSX KHUYENMAI HOADON MAHD MAKH CTHOADON MAHD MAH NGAYLAP SOLUONG THANHTIEN BAOHANH MABH MAKH CTBAOHANH MABH MAH NGAYNHAN NGAYTRA CHIPHI THONGTIN 2 . Mô tả chi tiết + Bảng Khách Hàng: KHACH HANG (MAKH , TENKH , DIACHI , DIENTHOAI , FAX , EMAIL) Diễn giải : MAKH :Mỗi lần mua hàng Khách hàng có 1 Mã khách hàng để phân biệt với các Khách hàng khác và những lần mua hàng khác. TENKH : Cho biết Họ và Tên cụ thể của Khách hàng mua hàng. DIACHI : Cho biết Đòa chỉ của Khách hàng. DIENTHOAI : Cho biết Điện thoại của Khách hàng để tiện việc liên lạc. FAX : Cho biết số Fax của Khách hàng. EMAIL : Cho biết Email của Khách hàng để có thể giới thiệu hàng mới. 4 + Bảng Hàng hóa: HANGHOA (MAH , TENH , GIA , SOLUONG , BAOHANH , HANGSX , KHUYENMAI) Diễn giải : MAH : Mỗi Hàng hoá có một Mã hàng hoá để phận biệt với các Hàng hóa khác. TENH : Cho biết Tên Hàng Hoá. Tên hàng phải là duy nhất. GIA : Cho biết Giá bán của Hàng hóa. Giá trò của GIA phải > = 0 SOLUONG : Cho biết số lượng hàng có (số lượng tồn ) để bán không. Giá trò của SOLUONG phải >= 0. BAOHANH : Cho biết hạng bảo hành của hàng. Giá trò của BAOHANH thuộc ('3THG','6THG' ,'9THG','1NAM','2NAM','3NAM'). HANGSX : Cho biết hãng sản xuất tương ứng của mặt hàng này. KHUYENMAI : Cho biết được khuyến mãi của hàng hóa (nếu có) , có thể bằng tiền hay tặng phẩm. + Bảng Hóa đơn: HOADON (MAHD , MAKH) Diễn giải : MAHD : Mỗi hóa đơn xuất cho Khách hàng điều có một Mã hóa đơn để phân biết cho các lần xuất khác MAKH : Cho biết mã số của khách hàng mua hàng, từ MAKH này ta có thể biết được các thông tin khác của khách hàng này như họ tên, đòa chỉ … + Bảng Chi tiết Hóa đơn: CTHOADON (MAHD , MAH , NGAYLAP, SOLUONG, THANHTIEN) Diễn giải : MAHD : Mỗi hóa đơn xuất cho Khách hàng điều có một Mã hóa đơn (dựa theo Mã hóa đơn đã có trong bảng Hóa đơn). Số lượng hàng được bán tuỳ thuộc vào mã hàng (MAH). NGAYLAP : Cho biết Ngày lập hoá đơn. SOLUONG : Cho biết số lượng hàng được bán. THANHTIEN : tính số tiền phải trả. THANHTIEN = GIA* SOLUONG, với GIA là giá trò lấy từ bảng HANGHOA thông qua MAH của hàng được bán. + Bảng Bảo Hành: BAOHANH (MABH , MAKH) Diễn giải : MABH : Mỗi phiếu bảo hành có 1 Mã bảo hành để phân biệt với các phiếu bảo hành khác. 5 MAKH : Cho biết khách hàng đi bảo hành hàng đã mua (MAKH tham chiếu đến bảng KHACHHANG). + Bảng Chi Tiết Bảo Hành: CTBAOHANH (MABH , MAH , NGAYNHAN, NGAYTRA , CHIPHI , THONGTIN) Diễn giải : MABH : Mỗi Hàng hóa có 1 số bảo hành (MABH). Hàng được bảo hành dựa vào (MAH) MAH : Cho biết hàng được bảo hành. NGAYNHAN : Ngày nhận hàng để sửa chữa. NGAYTRA : Ngày trả hàng (giao hàng) lại cho Khách hàng khi sửa xong. CHIPHI : Cho biết Chi Phí tức số tiền phải trả nếu hàng hóa hư không do kỹ thuật. THONGTIN : Cho biết hàng hóa đã bảo hành đã sửa chửa những gì hay là thay mới. 6 B . Sễ ẹO QUAN HE KHACHHANG MAKH TENKH DIACHI DIENTHOAI FAX EMAIL HANGHOA MAH TENH GIA SOLUONG BAOHANH HANGSX KHUYENMAI HOADON MAHD MAKH CTHOADON MAHD MAH NGAYLAP SOLUONG THANHTIEN BAOHANH MABH MAKH CTBAOHANH MABH MAH NGAYNHAN NGAYTRA CHIPHI THONGTIN C . RAỉNG BUOC TOAỉN VEẽN 7 1 . YÊU CẦU RÀNG BUỘC: RÀNG BUỘC TOÀN VẸN QUAN HỆ LOẠI RBTV 1 . Giá hàng phải là một số > 0 HANGHOA A 2. Số lượng hàng bảo hành phải >= 1 CTBAOHANH A 3. Số lượng hàng bán phải >= 1 CTHOADON A 4 . Số lượng Hàng phải >= 0 HANGHOA A 5. Chi Phí bảo hành phải >= 0 CTBAOHANH A 6 . Mỗi hàng hóa có một tên Hàng hóa riêng biệt HANGHOA B 7. Giá trò của BAOHANH phải thuộc (‘3THG','6THG', '9THG','1NAM','3NAM') HANGHOA A 8. DIENTHOAI là các số trong khoảng '[0-9][0-9][0-9][0-9] [0-9][0-9][0-9]' hoặc ‘[0-9][0-9][0-9][0-9][0-9][0-9][0-9] [0-9] [0-9]’ KHACHHANG A 9. FAX là các số trong khoảng '[0-9][0-9][0-9][0-9][0-9][0-9] [0-9]' hoặc ‘[0-9][0-9][0-9][0-9][0-9][0-9][0-9] [0-9][0-9]’ KHACHHANG A 10. THANHTIEN = GIA* SOLUONG (với GIA thuộc bảng HANGHOA sao cho mã hàng của hàng hóa bằng mã hàng của chi tiết hóa đơn) CTHOADON, HANGHOA F 11. NGAYLAP hóa đơn trong bảng CTHOADON không được lớn hơn ngày hiện tại CTHOADON A 12. NGAYTRA trên bảng CTBAOHANH phải nhỏ hơn ngày Hiện tại và phải lớn hơn NGAYNHAN CTBAOHANH C 13. Số lượng trong bảng Chi tiết Hoá đơn < = Số lượng trong bảng Hàng hóa CTHOADON, HAN GHO A F 14. SOLUONG trong bảng HANGHOA sẽ giảm đi một lượng đúng bằng SOLUONG trong bảng CTHOADON khi thêm mới một CTHOADON HANGHOA, CTH OAD ON F 15 . Khi thêm vào một mẫu tin trên bảng BAOHANH thì mẫu tin phải có MAKH đã tồn tại trong bảng KHACHHANG BAOHANH, KHACHHANG D 16 . Khi thêm vào một mẫu tin trên bảng CTBAOHANH thì mẫu tin phải có MAH đã tồn tại trong bảng HANGHOA và có MABH đã tồn tại trong bảng BAOHANH CTBAOHANH, BAOHANH, HANGHOA D 17 . Khi thêm vào một mẫu tin trên bảng CTHOADON thì mẫu tin phải có MAH đã tồn tại trong bảng HANGHOA và có MAHD đã tồn tại trong bảng HOADON CTHOADON, HOADON, HANGHOA D 18 . Khi thêm vào một mẫu tin trên bảng HOADON thì mẫu HOADON, D 8 tin phải có MAKH đã tồn tại trong bảng KHACHHANG KHACHHANG Ghi chú: A: Ràng buộc miền giá trò B: Ràng buộc liên bộ C: Ràng buộc liên thuộc tính D: Ràng buộc phụ thuộc tồn tại E: Ràng buộc liên bộ _ liên quan hệ F: Ràng buộc liên thuộc tính _ liên quan hệ G: Ràng buộc thuộc tíng tổng hợp H: Ràng buộc chu trình 2 . BẢNG TẦM ẢNH HƯỞNG RB TV KHACHHANG HANGHOA HOADON BAOHANH CTBAOHANH CTHOADON T X S T X S T X S T X S T X S T X S 1 x x 2 x x 3 x x 4 x x 5 x x 6 x x 7 x x 8 x x 9 x x 10 x x x x 11 x x 12 x x 13 x x x x 14 x x x 15 x 16 x x x 17 x x x 18 x x 3 .CÀI ĐẶT RÀNG BUỘC TOÀN VẸN : +Tạo bảng và ràng buộc khoá chính _ khóa ngoại: if exists (select * from sysobjects where id = object_id(N'USERS') and OBJECTPROPERTY(id, N'IsUserTable') = 1) 9 drop table USERS GO if exists (select * from sysobjects where id = object_id(N'CTBAOHANH') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table CTBAOHANH GO if exists (select * from sysobjects where id = object_id(N'BAOHANH') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table BAOHANH GO if exists (select * from sysobjects where id = object_id(N'CTHOADON') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table CTHOADON GO if exists (select * from sysobjects where id = object_id(N'HOADON') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table HOADON GO if exists (select * from sysobjects where id = object_id(N'KHACHHANG') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table KHACHHANG GO if exists (select * from sysobjects where id = object_id(N'HANGHOA') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table HANGHOA GO /* ============================================================ */ /* Table: USERS */ /* ============================================================ */ create table USERS ( USERNAMES CHAR(30) NOT NULL, PASSWORDSCHAR(30) NOT NULL, constraint PK_USERS primary key (USERNAMES) ) go /* ============================================================ */ /* Table: KHACHHANG */ /* ============================================================ */ create table KHACHHANG 10