Thực hành tốt về quan hệ bảng cốt lõi với các bảng mô-đun


7

Đây là một câu hỏi liên quan đến sự phát triển của Magento, nó có thể áp dụng cho cả M1 và M2.

Trong những tuần qua, tôi đã làm việc trên một số mô-đun có liên quan trực tiếp đến bảng thực thể / cơ sở dữ liệu Magento gốc.

Đây là một ví dụ nhưng điều này hợp lệ cho một số trường hợp phát triển mô-đun:

Một mô-đun cho phép bạn giới hạn quy tắc giỏ hàng chỉ dành cho một khách hàng (được mô tả qua email).

Tôi đi đến kết luận rằng có hai cách có thể thực hiện và tôi tự hỏi cái nào sẽ là cách được đề xuất:

Cách thứ nhất: sử dụng bảng lõi Magento

Không bao giờ chỉnh sửa lõi, có áp dụng cho các bảng lõi không?

  • Thêm một emailcột vào salesrule_rulebảng
  • Áp dụng các hạn chế có thể được thực hiện khi mô hình được tải.

Cách thứ hai: sử dụng bảng tùy chỉnh

  • Tạo một bảng tùy chỉnh với salesrule_idemailđược liên kết với một mô hình tùy chỉnh
  • Áp dụng các hạn chế có thể được thực hiện bằng cách tham gia thêm hoặc tải (của mô hình tùy chỉnh)

Trước đây, tôi thường luôn sửa đổi các bảng cốt lõi trực tiếp nhưng bây giờ tôi không cảm thấy đây là cách đúng đắn. Tuy nhiên, tôi lo ngại về hiệu suất theo cách thứ hai .

Cách tốt nhất / đề nghị để đối phó với điều này là gì?

Câu trả lời:


5

Đây hoàn toàn là ý kiến ​​dựa trên ý kiến ​​để những người khác có thể khác về quan điểm nhưng đối với tôi, việc thay đổi bảng cốt lõi không phải là vấn đề miễn là bạn chỉ thêm cột hoặc chỉ mục, v.v.

Thay đổi các cột hiện có, xóa chúng, v.v ... sẽ có hành vi không mong muốn vì vậy nên tránh.

Nếu bạn thêm cột thông qua tập lệnh cài đặt mô-đun, điều đó sẽ hoàn toàn tốt. Bên cạnh đó, việc thêm một bảng khác mà bạn phải tham gia hoặc tự truy vấn sẽ có một hình phạt hiệu suất đi kèm với nó vì vậy theo tôi là một quyết định tồi.

Nhưng như tôi đã nói, đó chỉ là ý kiến ​​của tôi;)


Cảm ơn sự đóng góp của bạn, mặc dù đó sẽ là một vấn đề liên quan đến việc nâng cấp Magento?
Raphael tại Nghệ thuật piano kỹ thuật số

1
chỉ khi họ giới thiệu cùng một cột. Cá nhân tôi tiền tố tất cả các cột trong các bảng cốt lõi với tên mô-đun
Sander Mangel

2
cũng đảm bảo các cột được thêm vào có tiền tố tên thích hợp, vì vậy các mô-đun khác không xung đột với chúng.
Flyingmana
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.