30/09/2018, 16:56

Giúp chọn thiết kế sơ đồ ER cho cơ sở dữ liệu?

Đang vẽ sơ đồ ER cho cơ sở dữ liệu đặt phòng khách sạn.
Chỗ đặt phòng vẽ có 2 hướng, theo mình thì sẽ chọn cái đầu tiên nhưng còn thắc mắc ngữ nghĩa giữa thực thể:Phòng và Phiếu Đặt Phòng có quan hệ . Không biết quan hệ có đúng không, hay Phiếu Đặt Phòng chỉ xuất hiện khi có khách hàng đặt phòng và không được quan hệ với Phòng.

Tom Nguyen viết 19:05 ngày 30/09/2018

Có kiểu vẽ này à? Nhìn như mixed của ERD và activity diagram ý nhỉ.

Hoàng Long viết 18:57 ngày 30/09/2018

Đây là sơ đồ thực thể kết hợp(Entity Relationship Diagram - ERD)

en.wikipedia.org

Entity–relationship model

An entity–relationship model (ER model for short) describes interrelated things of interest in a specific domain of knowledge. A basic ER model is composed of entity types (which classify the things of interest) and specifies relationships that can exist between instances of those entity types. In software engineering, an ER model is commonly formed to represent things that a business needs to remember in order to perform business processes. Consequently, the ER model becomes an abstract data mo...

Lập Trình Sư viết 19:01 ngày 30/09/2018

Sửa lại chút thôi, quan hệ thì nên sửa thế này.

  • KhachHang 1 - n PhieuDatPhong
  • PhieuDatPhong 1 - 1 Phong

Thông thường khi đặt hàng:

  • 1 Khách Hàng có thể đặt phòng nhiều lần, lúc này Phiếu Đặt Phòng sẽ được tạo ra. Vậy là mỗi 1 Khách Hàng sẽ có nhiều Phiếu Đặt Phòng.
  • Phiếu Đặt Phòng ko tồn tại nếu ko có Khách Hàng, vậy phải có ít nhất 1 Khách Hàng đặt phòng.

-> Chốt: 1 Khách Hàng sở hữu nhiều (N) Phiếu Đặt Phòng -> Quan hệ (1, N)

  • Có Phiếu Đặt Phòng thì buộc phải nhập thông tin Phòng.
  • Mỗi lần đặt Phòng thì chỉ được sử dụng 1 Phòng, vậy là Phiếu Đặt Phòng chỉ ghi thông tin duy nhất 1 Phòng hợp lệ

-> Chốt: 1 Phiếu Đặt Phòng phải có 1 Phòng -> Quan hệ (1, 1)

Tom Nguyen viết 19:09 ngày 30/09/2018

Cảm ơn bạn nhé. Lâu rồi chỉ nhớ mỗi style này gọi là ERD

Mấy cái kia không nhớ mấy

Nguyen Ca viết 19:10 ngày 30/09/2018

Trong mô hình ERD , thực thể nó phải tồn tại độc lập,
Phiếu Đặt Phòng được sinh ra khi có người đặt phòng, vì vậy nó thể hiển mối quan hệ giữ phòng với Khách Hàng, không phải là một thực thể trong ERD
Một Phòng có thể có nhiều khách hàng đặt, Khách hàng có thể đặt nhiều phóng -> mối quan hệ là (n,n)

Hoàng Long viết 19:04 ngày 30/09/2018

T cũng nghĩ nếu phiếu đặt phòng không đúng về mặt ngữ nghĩa. Nhưng mà mình đang thắc mắc không biết nếu làm theo cái thứ 2 thì lúc chuyển qua csdl sẽ tạo ra bảng KH _PHG làm sao vừa lưu đc cung lúc mã phòng và số lượng phòng.(n-n tạo bảng mới)

Hoàng Long viết 18:58 ngày 30/09/2018

Ai có làm phân mềm dạng đặt phòng gợi ý cách lưu trữ csdl vs

Nguyen Ca viết 19:09 ngày 30/09/2018

khi chuyển qua mô hình vật lý thi sẽ có table KH_PHG vói cái field là: MAKH,MAPHG, thời gian đặt, sô lượng đặt,vậy là đáp ứng được rồi.
Lưu ý là nếu môt lần khách đặt phòng sẽ phát sinh mã mới thì chỉ cần cặp key (MAKH,MAPHG) để xác đình 1 record duy nhất là đủ, cón nếu việc quản lý khách hàng là cố định thì cần “thời gian đặt” làm key nữa
tìm tham khảo trong đây : http://www.databaseanswers.org/data_models/ (Hotels and Accomodation) có thể có ích

Hoàng Long viết 19:09 ngày 30/09/2018

Cảm ơn @nguyenhuuca . Trang trên có nhiều mẫu ghê

Phương Đặng viết 18:56 ngày 30/09/2018

Cho em hỏi là cái hình ERD vẽ bằng tool tên gì ạ?

Bài liên quan
0