Sự khác biệt giữa danh mục EAV và danh mục phẳng như sau:
1. Danh mục Eav
EAV là mô hình cơ sở dữ liệu giá trị thuộc tính thực thể, trong đó dữ liệu hoàn toàn ở dạng chuẩn hóa. Mỗi giá trị dữ liệu cột được lưu trữ trong bảng kiểu dữ liệu tương ứng của chúng. Ví dụ, đối với một sản phẩm,
ID sản phẩm được lưu trữ trong catalog_product_entity_int
bảng,
tên sản phẩm trong catalog_product_entity_varchar
bảng,
giá sản phẩm trong catalog_product_entity_decimal
bảng,
sản phẩm tạo ngày trong catalog_product_entity_datetime
bảng,
mô tả sản phẩm trong catalog_product_entity_text
bảng.
EAV rất phức tạp khi nó tham gia 5-6 bảng ngay cả khi bạn chỉ muốn nhận một chi tiết của sản phẩm.
Các cột được gọi là các thuộc tính trong EAV.
2. Danh mục phẳng
Mô hình phẳng chỉ sử dụng một bảng, vì vậy nó không được chuẩn hóa và sử dụng nhiều không gian cơ sở dữ liệu hơn. Nó xóa chi phí EAV,
Thật tốt khi nói đến hiệu suất, vì nó sẽ chỉ yêu cầu một truy vấn để tải toàn bộ sản phẩm thay vì tham gia 5-6 bảng để chỉ nhận một chi tiết của sản phẩm.
Các cột được gọi là các trường trong mô hình phẳng.
Magento đã thực hiện các bộ chỉ mục sẽ định kỳ truy vấn các bộ sưu tập tiêu chuẩn và điền vào các bảng cơ sở dữ liệu phẳng theo định dạng sau. Trong đó * là id cửa hàng.
catalog_category_flat_store_*
catalog_product_flat_*
Các bảng này có dữ liệu danh mục và sản phẩm không được chuẩn hóa chỉ dành cho mục đích đọc. Điều này cho phép Magento tìm nạp dữ liệu danh mục và sản phẩm trong một truy vấn duy nhất.
Bạn có thể kích hoạt danh mục phẳng bằng cách điều hướng đến System > Configuration > Catalog > Frontend > Use Flat Catalog Category | Use Flat Catalog Product
. Đặt cái này thành có.
Nếu bạn đang thêm thuộc tính mới trong bảng EAV cho danh mục. Sau đó đừng quên chạy lại chỉ mục (System > Configuration > Index Management)
. Lập chỉ mục lại làm mới bảng danh mục phẳng của bạn.
Để biết thêm thông tin, vui lòng kiểm tra Danh mục EAV của EAV & & Flat Flat trong Magento