Cần góp ý tạo cơ sở dữ liệu quán bán đồ uống

Chương trình cũng đơn giản thôi.
mình sử dụng C# và mysql.
chức năng chính như sau:
xem danh sách bàn.Chọn bàn . thêm đồ uống vào đơn hàng và cuối cùng là in ra hóa đơn.

database ntn: ( khóa chính *, khóa ngoại #)

  1. bàn : *id_bàn , trạng thái bàn.
  2. đồ uống : *id_đồ uống, tên đồ uống, giá đồ uống.
  3. đơn hàng : *id_ đơn hàng, #id_đồ uống, #id_bàn, tổng giá.
  4. hóa đơn: *id_hóa đơn, #id_đơn hàng.

mong mọi người góp ý giúp mình ạ.cảm ơn mọi người… :smile:

Về mặt nghiệp vụ bán hàng này thì mình cũng ko rành lắm nên ko góp ý.
Chỉ có vụ convention về cách đặt tên các trường hay tên bảng thì mình thấy nó ko chuẩn cho lắm, bạn có thể xem ví dụ về database chuẩn theo phong cách Microsoft:

Có một số rules như thế này:

  1. Tên bảng để số ít
  2. Tên cột để số ít
  3. Để schema name cho bảng (trong trường hợp nhiều bảng, nhiều nghiệp vụ) (E.g.: SchemeName.TableName)
  4. Dùng Pascal casing (a.k.a. upper camel case) (xem các case đặt tên tại đây)

Trong trường hợp này của bạn thì bạn đang vi phạm điều số 4 theo rules trên, tên các bảng nên là DoUong, DonHang, HoaDon thay vì như hiện tại, và các cột cũng vậy! Cái nữa là ID của Đồ uống thì ko cần để là id_douong mà chỉ cần để là ID(theo upper case) hoặc Id(Pascal case), tương tự đối với Tên và Giá (vì nó ở trong bảng đó rồi mà!), và các foreign key của các bảng cũng nên đặt là DoUongId, BanId, DonHangId thay vì id_douong, id_ban…

Đấy là toàn bộ góp ý của mình, bạn tham khảo nhé :blush:

2 Likes

nhìn thấy sai quá,

mỗi đơn hàng có 1 đồ uống tại 1 bàn nào đó, ok!

một hóa đơn thì phải có nhiều đơn hàng chứ nhỉ?!

tổng giá thì trong hóa đơn chứ nhỉ?

đây chỉ là nhận xét chủ quan ban đầu, nếu có đặc tả nghiệp vụ bằng lời thì đầy đủ thông tin hơn.

2 Likes

cám ơn đã góp ý ạ.tại mình vẫn cứ thấy nó kiểu j j ấy :smile:

cám ơn ạ :smile: :slight_smile:

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?