Khi nào thì thích hợp để tạo một Thực thể so với việc chỉ thêm một loại nội dung mới?


84

Lợi ích của việc tạo các loại thực thể mới so với việc chỉ xây dựng một loại nội dung mới là gì?

Có vẻ hơi quá khi thực hiện tất cả các mã hóa tùy chỉnh được yêu cầu để tạo một thực thể mới khi bạn có tất cả các chức năng CRUD và Lượt xem đã được tích hợp vào các loại nội dung.

Câu trả lời:


66

Đó không phải là quá nhiều về những lợi ích là gì mà nhiều hơn về những gì phù hợp cho một tình huống cụ thể như bạn đã nói. Bạn có thể đại diện cho hầu hết mọi thứ với một nút và trong 99% tình huống (như tôi đã tìm thấy ít nhất) bạn sẽ không cần phải thực hiện các loại thực thể tùy chỉnh.

Tôi luôn nghĩ về taxonomy_termloại thực thể là một ví dụ tốt về lý do tại sao mọi thứ không phải là loại nút / nội dung:

Một thuật ngữ phân loại về cơ bản là để nhóm các thực thể khác nhau lại với nhau và vì thế không yêu cầu chức năng giống như một nút. Mặc dù về mặt lý thuyết bạn có thể sử dụng một loại nội dung để thực hiện chức năng này (có lẽ là trường tham chiếu nút), thuật ngữ phân loại không cần phải làm điều tương tự như một nút để nó không thực sự có ý nghĩa. Điều tương tự có thể được nói cho các loại usertaxonomy_vocabularythực thể.

Vì vậy, một thuật ngữ phân loại được tạo ra như một thực thể riêng biệt và được lập trình để chỉ làm những gì nó cần, trong khi vẫn nhận được lợi ích của việc có thể có các trường được đính kèm, v.v.

Tôi nghĩ rằng câu trả lời đơn giản là khi một loại nút / nội dung không làm những gì bạn cần hoặc nó chỉ là một lượng quá mức cần thiết / chi phí quá cao để có rất ít lợi ích, thì bạn nên chọn viết một thực thể tùy chỉnh.

Điều này chỉ dựa trên kinh nghiệm cá nhân của tôi; Tôi rất muốn nghe những gì một người trực tiếp liên quan đến sự phát triển cốt lõi của Drupal đã nói gì về điều này.


8
Tôi nghĩ bây giờ rõ ràng hơn một chút. Dữ liệu không cần tất cả "lông tơ" bổ sung mà một nút cung cấp, như tác giả, ngày xuất bản, v.v. Bài viết này thực sự làm rất tốt việc giải thích lý do chung để sử dụng các thực thể.
cuộc nổi dậy

16

Một quy tắc rất đơn giản mà tôi sử dụng là liệu nội dung của bạn có cần được hiển thị công khai hay không. Nếu vậy, sau đó đi cho nút, nếu không chọn một thực thể. Entityforms hiện cho phép bạn tạo một giao diện để điền vào các thực thể của bạn.

Ví dụ: trên trang web được tạo bằng D6, chúng tôi xây dựng loại nội dung quảng cáo (với trường hình ảnh của nó, ngày hiển thị bắt đầu / kết thúc ...), nhưng sau đó bạn phải làm cho nó không được xuất bản theo mặc định và cung cấp cho biên tập viên của bạn quyền chỉnh sửa / xem các nút này và hy vọng không có lượt xem / tìm kiếm nào sẽ hiển thị các nút này ở thế giới bên ngoài. Nó khá cồng kềnh và sẽ dễ dàng hơn để đối phó với các thực thể.


12

Một thực thể đại diện cho một trường hợp sử dụng cụ thể .

Tôi tin rằng tín dụng cho định nghĩa đơn giản này được gửi đến Fago , nhưng tôi lười tìm một tài liệu tham khảo.

Chúng tôi có thể sử dụng Content(aka Nodes) cho tất cả các trường hợp sử dụng nếu chúng tôi muốn, nhưng thường thì điều đó không có ý nghĩa.

Content có một tác giả và cài đặt cho cả bình luận và vị trí menu.

Users, đại diện cho một trường hợp sử dụng đủ khác biệt Contentbởi vì trên usercả hai điều trên đều không có ý nghĩa gì, trong khi mặt khác, userphải có một e-mail và mật khẩu.

Taxonomy terms nổi bật bởi vì chúng có chức năng tích hợp được sắp xếp theo thứ bậc, thậm chí là hình tròn.

Nếu trường hợp sử dụng của bạn đủ tương tự với một thực thể hiện có, hãy sử dụng thực thể đó. Nếu thực thể của bạn bị chi phối bởi các quy tắc khác biệt đáng kể so với bất kỳ quy tắc hiện có nào, hãy tạo một quy tắc mới.

Ngoài ra còn có Giới thiệu về Thực thể , nhưng thật không may, nó không thực sự trả lời câu hỏi của bạn.


5

Tôi nghĩ đó là tất cả về bối cảnh, một nút được sử dụng chủ yếu cho nội dung vì vậy đó sẽ là blog, bài viết, faq, v.v. Trong khi người dùng cho các hồ sơ như nhân viên, khách hàng, v.v.

  • Diễn đàn
  • Dự án (về mặt quản lý dự án)
  • Hình thức
  • Vé ủng hộ
  • Nhóm

Mặc dù bạn có thể sử dụng một nút cho một cái gì đó như một vé hỗ trợ, nó có thể không phải là mẫu tốt nhất và mặc định ... Hy vọng điều đó sẽ giúp.


1

Các thực thể có thể được tạo ra với ít chi phí hơn các nút vì chúng không cần phải có tất cả các chức năng nặng mà các thực thể có.

Điều đó cũng có nghĩa là việc lưu trữ có thể đơn giản hơn - bạn có thể xây dựng chúng để lấy tất cả thông tin trong một truy vấn đơn giản mà không cần THAM GIA nếu bạn muốn. Tất cả các lĩnh vực độc đáo chỉ trong một bảng gọn gàng.

Đây có thể là một lợi ích rất lớn nếu bạn có nhiều hàm cần thực hiện truy vấn trên các thực thể và bạn đang cập nhật đồng thời nhiều thực thể với các truy vấn CẬP NHẬT vào cơ sở dữ liệu. Nếu bạn có thể đảm bảo dữ liệu tương đối khép kín trong một bảng duy nhất, bạn sẽ có ít lo lắng hơn và khả năng tham nhũng dữ liệu.


0

Một loại nội dung được thiết kế để là nội dung trang web. Đó là, mỗi loại nội dung được thiết kế để xuất bản và xuất hiện trên trang web. Ví dụ, một bài viết (ngoài hộp) được thiết kế để xuất hiện trên trang đầu tiên.

Bây giờ, giả sử bạn muốn tạo một cái gì đó giống như một mẫu đơn xin việc hoặc căn hộ. Rõ ràng, bạn sẽ không muốn xuất bản đơn xin việc của ai đó trên trang web của mình. Ngoài ra, nếu bạn muốn xây dựng một danh sách các liên hệ khách hàng / khách hàng tiềm năng thì sao? Bạn có muốn có cơ hội rằng thông tin này có thể được công bố do nhầm lẫn trên trang web của bạn? Cá nhân, tôi sẽ không.

Do đó, mô-đun mẫu thực thể được thảo luận ở trên. Nó cho phép bạn tạo một loại thực thể không được thiết kế để trở thành nội dung. Tuy nhiên, các loại thực thể này có sẵn cho bất kỳ mô-đun nào hỗ trợ các thực thể như quy tắc, chế độ xem và nhóm hữu cơ để chỉ một số loại.

Và sau đó bạn vào Drupal Commerce nơi các sản phẩm là các loại thực thể. Về cơ bản các thực thể cho phép các nhà phát triển mở rộng Drupal theo cách mà các nhà thiết kế Drupal ban đầu không bao giờ lường trước.


0

Điều này là chủ đề để thảo luận và cuối cùng, bạn phải đưa ra quyết định của mình như một nhà phát triển.

Tôi chọn các thực thể trên các nút bất cứ khi nào dữ liệu không được công khai với url riêng của chúng. Các nút đang mặc định nhận được một bí danh url, trạng thái được xuất bản, tiêu đề, thẻ meta, ... trong khi các thực thể chỉ nhận được một bản ghi trong cơ sở dữ liệu.

"Tôi muốn có thể thêm càng nhiều biểu ngữ với văn bản càng tốt và sau đó trong một blogpost chọn giữa một trong số chúng"

  • Loại nội dung sẽ là 'Blog'
  • Thực thể tùy chỉnh sẽ là 'Mục biểu ngữ'

-4

Thực thể vs Nội dung

Thực thểGói thực thểTrường

Nội dung là một loại thực thể. Vì thế,

Nội dungGói nội dung (Bài viết, Trang) có Trường (nội dung, hình ảnh bài viết)

Nếu bạn là lập trình viên, bạn chắc chắn chọn con đường tạo Thực thể của riêng mình nhưng đối với những người làm việc ở đây thì đó có thể không phải là con đường tốt nhất để đi cùng. Một lần nữa, đối với người xây dựng trang web, có UI để tạo Thực thể http://drupal.org/project/eck


Xin chào, và chào mừng đến với Câu trả lời của Drupal. Bạn đang nói rằng không có bất kỳ sự khác biệt giữa việc sử dụng một nút, hoặc một thực thể khác nhau? Bạn có thể mở rộng câu trả lời của bạn một chút không?
kiamlaluno
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.