Kapan tepat untuk membuat Entitas versus hanya menambahkan jenis konten baru?
84
Apa manfaatnya membuat jenis entitas baru dari sekadar membangun tipe konten baru?
Tampaknya agak berlebihan untuk melakukan semua pengkodean khusus yang diperlukan untuk membuat entitas baru ketika Anda memiliki semua fungsi CRUD dan Views sudah dibangun ke dalam tipe konten.
Ini bukan tentang manfaatnya tetapi lebih tentang apa yang sesuai untuk situasi tertentu seperti yang Anda katakan. Anda dapat mewakili hampir semua hal dengan simpul dan untuk 99% situasi (seperti yang saya temukan setidaknya), Anda tidak perlu menerapkan tipe entitas khusus.
Saya selalu menganggap taxonomy_termtipe entitas sebagai contoh yang baik mengapa tidak semuanya harus berupa tipe node / konten:
Istilah taksonomi pada dasarnya untuk pengelompokan bersama entitas yang berbeda dan karenanya tidak memerlukan fungsionalitas yang sama dengan simpul. Meskipun Anda secara teoritis dapat menggunakan tipe konten untuk melakukan fungsi ini (dengan mungkin bidang referensi simpul), istilah taksonomi tidak perlu melakukan hal yang sama dengan node sehingga tidak masuk akal untuk melakukannya. Hal yang sama dapat dikatakan untuk tipe entitas userdan taxonomy_vocabulary.
Jadi istilah taksonomi dibuat sebagai entitas yang terpisah dan diprogram untuk hanya melakukan apa yang diperlukan, sambil tetap mendapatkan manfaat karena dapat memiliki bidang yang terpasang, dll.
Saya pikir jawaban sederhana adalah bahwa ketika tipe node / konten tidak melakukan apa yang Anda butuhkan, atau itu hanya jumlah berlebihan / overhead yang besar untuk manfaat yang sangat sedikit, maka Anda harus memilih untuk menulis entitas kustom.
Ini hanya berdasarkan pada pengalaman pribadi saya; Saya tertarik mendengar apa yang dikatakan seseorang yang terlibat langsung dengan pengembangan inti Drupal tentang ini.
Saya pikir itu lebih jelas sekarang. Data yang tidak memerlukan semua "bulu" tambahan yang disediakan oleh sebuah node, seperti penulis, tanggal publikasi, dll. Artikel ini sebenarnya cukup baik dalam menjelaskan alasan umum untuk menggunakan entitas.
memberontak
16
Aturan praktis yang sangat sederhana yang saya gunakan adalah apakah konten Anda perlu ditampilkan untuk umum sendiri. Jika demikian, maka pergi untuk simpul, jika tidak memilih entitas. Entityforms sekarang memungkinkan Anda untuk membuat antarmuka untuk mengisi entitas Anda.
Misalnya, di situs web yang dibuat dengan D6 kami membuat jenis konten iklan (dengan bidang gambarnya, tanggal tampilan mulai / akhir ...), tetapi kemudian Anda harus membuatnya tidak dipublikasikan secara default dan memberi hak editor Anda hak untuk mengedit / lihat node ini dan berharap tidak ada tampilan / pencarian akan menampilkan ini di dunia luar. Cukup rumit dan akan lebih mudah untuk berurusan dengan entitas.
Saya percaya penghargaan untuk definisi sederhana ini berlaku untuk Fago , tapi saya malas menemukan referensi.
Kita bisa menggunakan Content(alias Nodes) untuk semua kasus penggunaan jika kita mau, tetapi seringkali itu tidak masuk akal.
Content memiliki penulis dan pengaturan untuk lokasi komentar dan menu.
Users, mewakili suatu use case yang cukup berbeda dari Contentkarena pada userkedua hal di atas tidak masuk akal, sementara di sisi lain, seorang userharus memiliki e-mail dan kata sandi.
Taxonomy terms menonjol karena mereka memiliki fungsi bawaan untuk diatur dalam hierarki, bahkan yang melingkar.
Jika use-case Anda cukup mirip dengan entitas yang ada, gunakan dengan entitas itu. Jika entitas Anda diatur oleh aturan yang sangat berbeda dari yang ada, buat yang baru.
Ada juga Pengantar Entitas , tetapi sayangnya itu tidak benar-benar menjawab pertanyaan Anda.
Saya pikir ini semua tentang konteksnya, sebuah node sebagian besar digunakan untuk konten sehingga akan menjadi blog, artikel, faq dll. Sementara pengguna untuk profil seperti staf, pelanggan dll. Contoh kapan Anda dapat membuat enitity baru:
Forum
Proyek (dalam hal manajemen proyek)
Bentuk, kondisi
Tiket dukungan
Kelompok
Meskipun Anda bisa menggunakan simpul untuk sesuatu seperti tiket dukungan, itu mungkin bukan templat terbaik dan default ... Harapan yang membantu.
Entitas dapat dibuat dengan overhead yang lebih sedikit daripada node karena mereka tidak perlu memiliki semua fungsi tugas berat yang dimiliki entitas.
Ini juga berarti penyimpanan bisa lebih sederhana - Anda dapat membangunnya untuk mengambil semua informasi dalam kueri sederhana tanpa BERGABUNG jika Anda mau. Semua bidang bagus hanya dalam satu tabel rapi.
Ini bisa menjadi manfaat besar jika Anda memiliki banyak fungsi yang perlu melakukan kueri pada entitas, dan Anda memperbarui banyak entitas secara bersamaan dengan permintaan UPDATE ke database. Jika Anda dapat memastikan bahwa data relatif lengkap dalam satu tabel, Anda memiliki lebih sedikit kekhawatiran dan kemungkinan korupsi data.
Jenis konten dirancang untuk menjadi konten situs. Artinya, setiap jenis konten dirancang untuk dipublikasikan dan muncul di situs. Misalnya, sebuah artikel (di luar kotak) dirancang untuk muncul di halaman pertama.
Sekarang, katakanlah Anda ingin membuat sesuatu seperti formulir aplikasi pekerjaan atau apartemen. Jelas, Anda tidak ingin mempublikasikan aplikasi pekerjaan seseorang di situs web Anda. Juga, bagaimana jika Anda ingin membangun daftar kontak pelanggan / kontak? Apakah Anda ingin mengambil kesempatan bahwa informasi ini mungkin dipublikasikan secara tidak sengaja di situs web Anda? Secara pribadi, saya tidak mau.
Oleh karena itu, modul formulir entitas yang dibahas di atas. Ini memungkinkan Anda untuk membuat tipe entitas yang tidak dirancang untuk menjadi konten. Namun, tipe entitas ini tersedia untuk modul apa pun yang mendukung entitas seperti aturan, tampilan, dan grup organik untuk beberapa nama.
Dan kemudian Anda masuk ke Drupal Commerce di mana produk adalah jenis entitas. Pada dasarnya entitas memungkinkan pengembang untuk memperluas Drupal dengan cara yang tidak pernah diramalkan oleh desainer Drupal asli.
Ini tergantung pada diskusi dan pada akhirnya Anda harus membuat keputusan sebagai pengembang.
Saya memilih entitas daripada node setiap kali data tidak harus tersedia untuk umum dengan url mereka sendiri Node mendapatkan secara default alias url, status yang dipublikasikan, judul, tag meta, ... sementara entitas hanya mendapatkan catatan dalam database.
"Saya ingin dapat menambahkan sebanyak mungkin spanduk dengan teks dan kemudian di blogpost pilih di antara mereka"
Entity memiliki
Bundel Entitas yang memiliki
Bidang
Konten adalah jenis Entitas. Begitu,
Konten memiliki
Bundel Konten (Artikel, Halaman) yang memiliki
Bidang (tubuh, gambar artikel)
Jika Anda seorang programmer, Anda pasti memilih jalur untuk membuat Entitas Anda sendiri, tetapi untuk sitebuilders mungkin bukan jalan terbaik untuk digunakan. Sekali lagi untuk pembuat situs ada UI untuk membuat Entity http://drupal.org/project/eck
Halo, dan selamat datang di Jawaban Drupal. Apakah Anda mengatakan tidak ada perbedaan antara menggunakan node, atau entitas yang berbeda? Bolehkah Anda sedikit memperluas jawaban?
Aturan praktis yang sangat sederhana yang saya gunakan adalah apakah konten Anda perlu ditampilkan untuk umum sendiri. Jika demikian, maka pergi untuk simpul, jika tidak memilih entitas. Entityforms sekarang memungkinkan Anda untuk membuat antarmuka untuk mengisi entitas Anda.
Misalnya, di situs web yang dibuat dengan D6 kami membuat jenis konten iklan (dengan bidang gambarnya, tanggal tampilan mulai / akhir ...), tetapi kemudian Anda harus membuatnya tidak dipublikasikan secara default dan memberi hak editor Anda hak untuk mengedit / lihat node ini dan berharap tidak ada tampilan / pencarian akan menampilkan ini di dunia luar. Cukup rumit dan akan lebih mudah untuk berurusan dengan entitas.
sumber
Entitas mewakili kasus penggunaan tertentu .
Saya percaya penghargaan untuk definisi sederhana ini berlaku untuk Fago , tapi saya malas menemukan referensi.
Kita bisa menggunakan
Content
(aliasNodes
) untuk semua kasus penggunaan jika kita mau, tetapi seringkali itu tidak masuk akal.Content
memiliki penulis dan pengaturan untuk lokasi komentar dan menu.Users
, mewakili suatu use case yang cukup berbeda dariContent
karena padauser
kedua hal di atas tidak masuk akal, sementara di sisi lain, seoranguser
harus memiliki e-mail dan kata sandi.Taxonomy terms
menonjol karena mereka memiliki fungsi bawaan untuk diatur dalam hierarki, bahkan yang melingkar.Jika use-case Anda cukup mirip dengan entitas yang ada, gunakan dengan entitas itu. Jika entitas Anda diatur oleh aturan yang sangat berbeda dari yang ada, buat yang baru.
Ada juga Pengantar Entitas , tetapi sayangnya itu tidak benar-benar menjawab pertanyaan Anda.
sumber
Saya pikir ini semua tentang konteksnya, sebuah node sebagian besar digunakan untuk konten sehingga akan menjadi blog, artikel, faq dll. Sementara pengguna untuk profil seperti staf, pelanggan dll. Contoh kapan Anda dapat membuat enitity baru:
Meskipun Anda bisa menggunakan simpul untuk sesuatu seperti tiket dukungan, itu mungkin bukan templat terbaik dan default ... Harapan yang membantu.
sumber
Entitas dapat dibuat dengan overhead yang lebih sedikit daripada node karena mereka tidak perlu memiliki semua fungsi tugas berat yang dimiliki entitas.
Ini juga berarti penyimpanan bisa lebih sederhana - Anda dapat membangunnya untuk mengambil semua informasi dalam kueri sederhana tanpa BERGABUNG jika Anda mau. Semua bidang bagus hanya dalam satu tabel rapi.
Ini bisa menjadi manfaat besar jika Anda memiliki banyak fungsi yang perlu melakukan kueri pada entitas, dan Anda memperbarui banyak entitas secara bersamaan dengan permintaan UPDATE ke database. Jika Anda dapat memastikan bahwa data relatif lengkap dalam satu tabel, Anda memiliki lebih sedikit kekhawatiran dan kemungkinan korupsi data.
sumber
Jenis konten dirancang untuk menjadi konten situs. Artinya, setiap jenis konten dirancang untuk dipublikasikan dan muncul di situs. Misalnya, sebuah artikel (di luar kotak) dirancang untuk muncul di halaman pertama.
Sekarang, katakanlah Anda ingin membuat sesuatu seperti formulir aplikasi pekerjaan atau apartemen. Jelas, Anda tidak ingin mempublikasikan aplikasi pekerjaan seseorang di situs web Anda. Juga, bagaimana jika Anda ingin membangun daftar kontak pelanggan / kontak? Apakah Anda ingin mengambil kesempatan bahwa informasi ini mungkin dipublikasikan secara tidak sengaja di situs web Anda? Secara pribadi, saya tidak mau.
Oleh karena itu, modul formulir entitas yang dibahas di atas. Ini memungkinkan Anda untuk membuat tipe entitas yang tidak dirancang untuk menjadi konten. Namun, tipe entitas ini tersedia untuk modul apa pun yang mendukung entitas seperti aturan, tampilan, dan grup organik untuk beberapa nama.
Dan kemudian Anda masuk ke Drupal Commerce di mana produk adalah jenis entitas. Pada dasarnya entitas memungkinkan pengembang untuk memperluas Drupal dengan cara yang tidak pernah diramalkan oleh desainer Drupal asli.
sumber
Ini tergantung pada diskusi dan pada akhirnya Anda harus membuat keputusan sebagai pengembang.
Saya memilih entitas daripada node setiap kali data tidak harus tersedia untuk umum dengan url mereka sendiri Node mendapatkan secara default alias url, status yang dipublikasikan, judul, tag meta, ... sementara entitas hanya mendapatkan catatan dalam database.
sumber
Entitas vs Konten
Entity memiliki Bundel Entitas yang memiliki Bidang
Konten adalah jenis Entitas. Begitu,
Konten memiliki Bundel Konten (Artikel, Halaman) yang memiliki Bidang (tubuh, gambar artikel)
Jika Anda seorang programmer, Anda pasti memilih jalur untuk membuat Entitas Anda sendiri, tetapi untuk sitebuilders mungkin bukan jalan terbaik untuk digunakan. Sekali lagi untuk pembuat situs ada UI untuk membuat Entity http://drupal.org/project/eck
sumber