1. Xác định các thuộc tính tình huống
Thuộc tính Active
Khi thực hiện xóa một bản ghi ở bảng dữ liệu gốc, dữ liệu ở các bảng phụ thuộc con cũng đồng thời mất đi, làm mất mát thông tin liên quan giữa các bảng của hệ thống. Do đó, thay vì xóa trực tiếp bản ghi vật lý trên cơ sở dữ liệu chúng ta thực hiện xóa logic bản ghi đó bằng cách thêm vào thuộc tính Active để đánh dấu bản ghi
đó đã không được sử dụng nữa mà không làm ảnh hưởng tới dữ liệu của các bảng liên quan. Thực hiện thêm trường Active vào tất cả các bảng của cơ sở dữ liệu hệ thống.
Tên trường Kiểu dữ liệu Giá trị mặc định
Active bit True
Thuộc tính lưu tiền khách thanh toán trong bảng Hóa đơn bán hàng.
Khách hàng thanh toán tiền cho nhân viên thu ngân, để tránh tình trạng nhầm lẫn trong việc nhận và trả lại tiền cho khách hàng. Chúng ta sẽ thêm vào bảng hóa đơn bán hàng hai trường Nhận tiền, Tiền thừa. Khi nhân viên nhập vào số tiền khách đã trả, hệ thống sẽ tự động tính số tiền thừa của khách hàng.
Tên trường Kiểu dữ liệu Giá trị mặc định
NhanTien Float 0
TienThua Float 0
Thuộc tính lưu thông tin nhân viên lập hóa đơn bảng Hóa đơn bán hàng
Để quản lý hóa đơn bán hàng của hệ thống một cách chặt chẽ và thuận lợi cho công việc lập trình sau này, chúng ta sẽ lưu trữ luôn tên tài khoản đăng nhập của nhân viên lập hóa đơn vào bảng hóa đơn bán hàng.
Tên trường Khóa Ngoại Kiểu dữ liệu
IDUser Varchar(20)
Khi sách được nhập kho, bộ phận quản lý kho sẽ tiến hành phân loại sách. Để phân loại chi tiết các nhóm sách theo nhiều mức (nhiều hơn 2 mức) bảng Loại Sách
hiện thời chưa đáp ứng được yêu cầu trên. Mặt khác, do số mức để phân loại nhóm sách là không biết trước lên không thể xây dựng thêm bảng để thực hiện việc này. Vì vậy, ta thêm một trường IDNhom vào bảng Loại sách, trường IDNhom quan hệ với trường IDLoaiSach và bảng Loại sách trở thành bảng tự quan hệ đáp ứng nhu cầu phân loại sách theo nhiều mức.
Tên trường Khóa Ngoại Kiểu dữ liệu Giá trị mặc định
IDNhom Int NULL
Trong bảng Loại sách, trường IDNhom có giá trị NULL tức là nhóm sách ở mức 1, mức cao nhất.
2. Xác định các bảng dữ liệu phục vụ nhu cầu bảo mật
Để đáp ứng được yêu cầu bảo mật cho hệ thống chúng ta cần sử dụng một số bảng dữ liệu sau:
1) tbl_GROUP_ROLE
STT Khóa chinh
Khóa
ngoại Tên trường Kiểu dữ liệu Diễn giải
1 IDGroupRole Int (identity) Mã nhóm chức năng
2 GroupRoleName Nvarchar(200) Tên nhóm chức năng
3 Active Bit
2) tbl_ROLE
STT Khóa chinh
Khóa
ngoại Tên trường Kiểu dữ liệu Diễn giải
1 IDRole Int (identity) Mã chức năng
2 RoleName Nvarchar(200) Tên chức năng
3 IDGroupRole Int Mã nhóm chức năng
1 IDGroupUser Int Mã nhóm người dùng
2 GroupUserName Nvarchar(50) Tên nhóm người dùng
3 Active Bit
4) tbl_USER
STT Khóa chinh
Khóa
ngoại Tên trường Kiểu dữ liệu Diễn giải
1 IDUser Varchar(20) Mã người dùng
2 UserName Nvarchar(50) Tên tài khoản
3 Password Nvarchar(100) Mật khẩu
4 Active Bit
5) tbl_USER_ROLE
STT Khóa chinh
Khóa
ngoại Tên trường Kiểu dữ liệu Diễn giải
1 IDUser Varchar(20) Mã người dùng
2 IDRole Int Mã chức năng
3 allowSelect Bit Quyền truy vấn
4 allowInsert Bit Quyền thêm mới
5 allowDelete Bit Quyền xóa
6 allowUpdate Bit Quyền cập nhật
7 AllowExec Bit Quyền thực thi