Tìm hiểu về hệ thống quản trị cơ sở dữ liệu database trên Magento

Bài viết sẽ giới thiệu tới người đọc hệ thống cơ sở dữ liệu database được sử dụng trong Magento.

Hệ thống cơ sở dữ liệu trong Magento

Không giống như các nền tảng khác, Magento sử dụng mô hình cơ sở dữ liệu EAV. Điểm mạnh của mô hình này là tính linh hoạt khi sử dụng tài sản, điều này rất quan trọng đối với một trang web Thương mại điện tử.

Trong phần này, chúng ta sẽ tìm hiểu về cơ sở dữ liệu của một số mô-đun chính của Magento bao gồm Khách hàng, Danh mục và Bán hàng .

1. Khách hàng

Cơ sở dữ liệu khách hàng trong Magento được lưu trữ theo mô hình EAV bao gồm một số bảng sau:

Trong đó, bảng customer_entity là bảng lưu trữ. Bảng Customer_entity là nơi lưu trữ thông tin chính về khách hàng, bao gồm các trường sau:

  • entity_id: khóa chính
  • email: email của khách hàng
  • created_at, update_at: thời gian tạo, thời gian cập nhật lần cuối cho khách hàng
  • is_active: trạng thái hoạt động
  • website_id, store_id, group_id: khóa ngoại liên kết với các bảng tương ứng: core_website, core_store_id, customer_group.
  • entity_type_id: khóa chính của bảng eav_entity_type
  • property_set_id: khóa chính của bảng eav_attribution_set

Các bảng customer_entity_datetime, customer_entity_decimal, customer_entity_int, customer_entity bản, customer_entity_varchar chứa giá trị của các thuộc tính được phân loại theo loại dữ liệu tương ứng. Trong bảng này, đây là một số lĩnh vực đáng chú ý:

  • entity_type_id: khóa chính của bảng eav_entity_type
  • property_id: khóa chính của bảng eav_attribution.
  • entity_id: khóa chính của bảng customer_entity

Các bảng cho địa chỉ khách hàng có một phương thức lưu trữ tương tự với customer_address_entity là bảng chính, hơn nữa còn có trường Parent_id để tạo liên kết đến bảng customer_entity.

2. Danh mục

Trong Magento, cơ sở dữ liệu của danh mục mô-đun có thể thể hiện tốt nhất cách sử dụng mô hình EAV. Dữ liệu của mô-đun này được chia thành 2 phần: danh mục và sản phẩm.

Cách lưu trữ bảng danh mục tương tự như của khách hàng, bảng chính là catalog_carget_entity, các bảng phụ là các bảng có tiền tố như catalog_carget. Cần lưu ý từ bảng này rằng Parent_id là lưu trữ thông tin về mối quan hệ giữa các danh mục (danh mục chính).

Bảng catalog_carget_product là để hiển thị mối quan hệ giữa sản phẩm và danh mục, sản phẩm nào thuộc danh mục nào.

Cơ sở dữ liệu cho sản phẩm khá lớn, cần thiết cho một nền tảng thương mại điện tử như Magento. Tương tự như khách hàng, bảng lưu trữ chính là catalog_product_entity bao gồm các bảng sau:

  • entity_id (khóa chính)
  • created_at, update_at: thời gian tạo, thời gian cập nhật lần cuối cho khách hàng
  • entity_type_id: khóa chính của bảng eav_entity_type
  • property_set_id: khóa chính của bảng eav_attribution_set
  • type_id: loại sản phẩm
  • sku: mã sản phẩm

Các bảng có tiền tố catalog_product_entity lưu trữ giá trị của các thuộc tính sản phẩm.

Các bảng catalog_product_link thể hiện mối quan hệ giữa các sản phẩm, trong đó các loại mối quan hệ được lưu trữ trong catalog_product_link_type, các giá trị của các thuộc tính mối quan hệ được lưu trữ trong bảng khác với tiền tố tương ứng.

Bảng catalog_product_option chứa thông tin về các tùy chọn mà sản phẩm có thể có. Các bảng này được liên kết đến catalog_product_bundle_option

Bảng catalog_product_website cho thấy mối quan hệ giữa sản phẩm và trang web, sản phẩm trong Magento được tạo bởi các trang web riêng biệt.

Bảng catalog_product_index.

Bên cạnh đó, còn có các bảng catalog_carget_flat_store_x, catalog_product_flat_1 (x = 1,2,3.) Để hiển thị mối quan hệ giữa danh mục, sản phẩm với cửa hàng. Tuy nhiên đây là điểm yếu của Magento khi sử dụng mô hình EAV. Bất cứ khi nào một cửa hàng mới được tạo, hai bảng tương tự khác sẽ được tạo tự động, điều này không tốt cho các trang web có số lượng lớn cửa hàng và máy chủ không thể phục vụ các yêu cầu bộ nhớ.

3. Bán hàng

Cơ sở dữ liệu cho các cửa hàng bán mô-đun thông tin cần thiết để mua bao gồm: Trích dẫn, Đặt hàng, Hóa đơn, Lô hàng, Creditmemo. Không giống như Khách hàng và Danh mục, các bảng trong mô-đun Bán hàng được lưu trữ trong mô hình cơ sở dữ liệu mối quan hệ. Để minh họa trực quan, bạn có thể tải xuống tệp PDF tại liên kết này:

http: //www.magentoc Commerce.com/?ACT=25&fid=40&aid=9563_38jYypduC0XKiAfzF4Zi&board_id=1

– Trích dẫn: Chứa thông tin đặt hàng khi khách hàng hoặc quản trị viên tạo giỏ hàng. Bảng sales_flat_quote là bảng chính. Bảng sales_flat_quote_address, sales_flat_quote_item, sales_flat_quote_payment lưu trữ thông tin chi tiết về địa chỉ đơn hàng, các mặt hàng theo thứ tự, phương thức thanh toán.

– Đặt hàng: Chứa thông tin đặt hàng sau khi khách hàng xác nhận đơn hàng. Tương tự như Trích dẫn, bảng chính là sales_flat_order, bảng phụ lưu trữ thông tin cần thiết khác.

– Hóa đơn: thông tin hóa đơn sau khi đơn hàng được xử lý. Bảng chính là sales_flat_invoice, bảng sales_flat_invoice_item lưu trữ thông tin chi tiết của các mục theo thứ tự, bảng sales_flat_invoice_grid lưu trữ thông tin cần thiết cho báo cáo và phân tích.

– Lô hàng & Creditmemo: Các bảng này được thiết kế giống như hóa đơn, chứa thông tin đơn hàng sau quá trình quản trị (giao hàng hoặc hủy) của bảng chính là sales_flat_shipment, sales_flat_creditmemo. Các chi tiết hệ thống giống như của Hóa đơn.

– Ngoài ra còn có các bảng:

  • sales_order_status: Thông tin về danh sách trạng thái đơn hàng
  • sales_order_tax: Thông tin về các trường hợp đánh thuế vào đơn hàng
  • salesrule: Thông tin về điều kiện, chiến dịch khuyến mãi cho mỗi đơn hàng.
  • sales_recurring_profile: …

Trả lời