You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
"Việc tạo ra nhiều object model sẽ tạo nhiều relational model tương ứng, điều đó khiến cho việc query ở database trở nên phức tạp, giảm performance. Ví dụ về phía ứng dụng bạn muốn tạo 2 model Account liên quan đến thông tin đăng nhập hệ thống và Profile liên quan đến thông tin cá nhân người dùng, tương ứng bạn sẽ có 2 table tương tự trong database, nhưng thực ra bạn có thể chỉ cần tạo một table users để lưu những thông tin đó vào database."
Trên thực tế, để tăng performance của ứng dụng, thì ở lớp db vẫn phải nên chia 2 relation này ra. Đảm bảo tính atomic của functionality, table Account để thực hiện Authentication, Profile dùng để store thông tin của người dùng. Để xét xem 2 tables bào có thể gộp lại được không thì phải xét ở mức ứng dụng là các thông tin trong các tables đó có hay được sử dụng cùng nhau không. Đôi lúc có thể phải sử dụng denormalization. Việc tạo thêm table không phải là tiêu chí quan trọng trong các DBMS sau này.
Một ví dụ là 1 trang news có lượng bài lớn và traffic lớn sẽ tách biệt table Article (chứa metadata) và ArticleContent (chứa nội dung) ra thành 2 table. Lý do là trong những trang news, việc listing, highlight giữ vai trò quan trọng, nên cần index và query nhanh ở table Article, trích xuất ra dữ liệu như title, description của nhiều bài viết một lúc. Sau khi user lựa chọn 1 news, việc lấy nội dung 1 bài viết bằng primary key sẽ rất nhanh. Việc này sẽ bị giảm xuống nếu gộp luôn Article và ArticleContent vào 1 table.
What ORMs lie to you
https://mozartilize.github.io/2018/01/15/what-orms-lie-to-you.html
The text was updated successfully, but these errors were encountered: