3 Bước Đơn Giản Để Xây Dựng Data Model Trong Mendix

Bài viết này sẽ giúp bạn hiểu rõ hơn về từng yếu tố chính của domain model trong Mendix và vai trò của chúng trong quá trình tạo ra ứng dụng của bạn. Ví dụ cụ thể về một ứng dụng đặt hàng sẽ được sử dụng xuyên suốt trong bài viết sau. Khách hàng cần truy cập chức năng đặt hàng tại từng line, trong đó mỗi line sẽ được kết nối với mỗi sản phẩm.

1. Data model là gì?

Nền tảng của nhiều ứng dụng đa phần sẽ là data model của chính nó. Một data model sẽ xác định dữ liệu nào được sử dụng và tương tác trong ứng dụng. Dữ liệu này được lưu trữ tạm thời trong bộ nhớ hoặc lưu trữ vĩnh viễn trong một kho dữ liệu như database.

Data model trong Mendix được xây dựng bằng ngôn ngữ trực quan được gọi là domain model. Bên trong một domain model, bạn có thể xác định các thành phần sau:

  • Entities: Gồm hai loại non-persisted hoặc persisted, cho phép bạn lưu trữ dữ liệu tạm thời hoặc vĩnh viễn. Persisted entity tương đương với một bảng database, đi kèm với một khóa chính duy nhất. Ví dụ: Entity về một địa điểm hoặc entity về một giao dịch tài chính. Non-persisted entity cũng là nơi để chứa dữ liệu, tuy nhiên gọi là non- vì nó sẽ không lưu lại data đó. Ví dụ: Thông tin đăng nhập từ tài khoản khách (anonymous) không lưu lại thông tin sẽ sử dụng non-persisted entity, còn nếu là thông tin của khách hàng muốn lưu lại thì dùng persisted entity.
  • Attributes: Các attributes cũng tương tự như các cột trong một bảng database. Ví dụ: tên và địa chỉ của một địa điểm, hoặc ngày và loại giao dịch trong một giao dịch tài chính.
  • Associations: Các Associations này sẽ xác định mối quan hệ giữa hai entities, giống như một liên kết giữa hai bảng cơ sở dữ liệu.

Tìm hiểu thêm về Entities và Database trong Mendix từ các Mendix Developer tại Kyanon Digital qua video sau:

Khi ứng dụng Mendix hoạt động, runtime (thời gian chạy) sẽ so sánh mô hình với cơ sở dữ liệu được chọn và thực hiện tất cả các lệnh cập nhật cần thiết. Mendix hỗ trợ nhiều loại cơ sở dữ liệu, bao gồm:

  • PostgreSQL
  • Microsoft SQL Server
  • MySQL
  • Oracle
  • HANA DB

 5 loại data model mendix hỗ trợ

2. Xác định các entities

Khi bắt đầu một dự án mới, điều đầu tiên bạn cần xác định là cấu trúc dữ liệu của bạn. Bạn cần nghĩ đến các entity mà bạn cần tạo để xây dựng ứng dụng của mình. Trong ví dụ này, yêu cầu cần xây dựng một ứng dụng cho phép khách đặt hàng một số sản phẩm khác nhau.

Đối với domain model của ứng dụng này, bạn sẽ cần có một entity khách hàng, entity đơn đặt hàng và entity order line dưới dạng persisted. Điều này sẽ cho phép theo dõi đơn đặt hàng và biết được khách đã đặt sản phẩm nào. Mỗi persisted entity sẽ tạo ra một bảng trong cơ sở dữ liệu với một khóa duy nhất. Biểu đồ bên dưới thể hiện bốn entities của chúng ta:

Entities trong MendixEntities trong Mendix
Nguồn: Mendix

3. Thêm các Attributes

Sau khi tạo các entity, bạn cần thêm thêm thông tin cho mỗi entity, đó là nơi attributes đóng vai trò quan trọng. Trong ví dụ này, entity khách hàng có thể bao gồm tên, loại thành viên (VIP hoặc khách hàng thường). Entity sản phẩm sẽ bao gồm tên sản phẩm hoặc mô tả sản phẩm.

Khi điền thông tin vào các entity, các chi tiết của ứng dụng sẽ được hiển thị và việc cài đặt thêm bất kỳ attributes nào khác cần thiết cũng rất dễ dàng. Biểu đồ bên dưới mô tả cách attributes được liệt kê trong bốn entities:

Attributes trong MendixAttributes trong Mendix
Nguồn: Mendix

Tên, số thứ tự đơn hàng tự động và ngày đặt hàng cũng sẽ được tạo ra khi đơn hàng được đặt. attributes tương đương với các cột trong bảng và bao gồm kích thước lẫn kiểu attributes, chẳng hạn như string, integer, Boolean và tất cả các loại dữ liệu thông thường mà bạn cần để xây dựng ứng dụng.

4. Tạo ra các Associations

Sau khi xác định các entity và attributes, đã đến lúc liên kết chúng với nhau. Trong ví dụ này, một khách hàng có thể có nhiều đơn hàng, một đơn hàng có thể có nhiều order line và mỗi sản phẩm có thể được mua nhiều lần. Sơ đồ dưới đây thể hiện mối quan hệ giữa các entities:

Mối quan hệ giữa các entitiesMối quan hệ giữa các entities
Nguồn: Mendix

Bạn sẽ nhận thấy các mối quan hệ được biểu đạt trực quan thông qua các associations. Một khách hàng có thể có nhiều đơn hàng được hiển thị bằng dấu sao (*) trong ảnh trên. Để tiếp tục tìm hiểu sâu hơn trong ví dụ này, chúng ta cũng có thể xóa đi hành vi giữa các mối quan hệ.

Ví dụ: Nếu một khách hàng có nhiều đơn hàng, có nên xóa tất cả các đơn hàng có liên quan đến khách hàng đó (cascading delete)? Hoặc nếu một khách hàng có nhiều đơn hàng, chúng ta có nên ngăn người dùng xóa một đơn hàng (prevention delete)?

Associations trong MendixAssociations trong Mendix
Nguồn: Mendix

Nhấp đúp vào các associations để xem hành vi và các cấu hình nên tùy chọn xóa. Hành vi xóa nên phụ thuộc vào nhu cầu kinh doanh của doanh nghiệp. Biểu tượng trực quan cho hành vi này là màu xanh (prevention delete) hoặc màu đỏ (cascading delete). Hãy cân nhắc mức độ ưu tiên của các câu hỏi sau khi thực hiện xóa:

  • Giữ lại thông tin khách hàng khi họ đặt hàng?
  • Hay là dọn sạch cơ sở dữ liệu để không còn đơn hàng sót lại khi xóa thông tin khách hàng?

Đây là những câu hỏi hữu ích giúp các business user xây dựng đúng với các quy tắc kinh doanh của mình.

Xem thêm video hướng dẫn cách tạo Data Model trong Mendix tại đây:

Hi vọng bài viết đã giúp bạn nắm được 3 bước đơn giản để xây dựng data model trong Mendix. Kyanon Digital hiện đang là đối tác giải pháp của Mendix – một trong những nền tảng cung cấp giải pháp low-code hàng đầu trên thế giới. Kyanon Digital hỗ trợ đẩy nhanh quá trình chuyển đổi kỹ thuật số cho khách hàng bằng cách cung cấp các giải pháp low-code tuyệt vời từ Mendix. Nếu bạn đang có nhu cầu đẩy nhanh tốc độ phát triển của các ứng dụng và mở rộng hệ sinh thái kinh doanh, hãy liên hệ ngay với chúng tôi để được tư vấn sớm nhất.

 

Nguồn: Mendix

Dịch và biên tập: Kyanon Digital

5/5 - (1 vote)