วิธีที่เหมาะสมในการใช้เขตข้อมูลที่มีอยู่คืออะไร?


13

ฉันเป็นผู้เริ่มต้น Drupal ฉันสับสนเล็กน้อยเกี่ยวกับการเพิ่มเขตข้อมูลลงในประเภทเนื้อหา

กรณีที่ 1:สมมติว่าถ้าผมมีสามชนิดเนื้อหาBook, และArticle White Paperฉันสร้างAuthorsคำศัพท์ซึ่งมีรายชื่อผู้เขียนทั้งหมด

  1. ตอนนี้ฉันควรสร้างฟิลด์ "เขียนโดย" (คำอ้างอิงถึงผู้เขียน) สำหรับแต่ละประเภทเนื้อหาหรือสร้างฟิลด์สำหรับประเภทเนื้อหาหนึ่งและใช้ในประเภทเนื้อหาอื่น ๆ ?

  2. อะไรคือข้อดี / ข้อเสียของทั้งสองวิธี

  3. จะเกิดอะไรขึ้นถ้าฉันลบเขตข้อมูลที่นำกลับมาใช้ใหม่จากประเภทเนื้อหาหนึ่ง มันจะถูกลบในคนอื่น ๆ ทั้งหมดหรือไม่

กรณีที่ 2:ฉันได้ทำการค้นหาเนื้อหาประเภท: แล้ว (พร้อมข้อกำหนดด้านฟิลด์ที่ระบุ)

+--------------+----------------------+
| Content Type | Field Required       |
+--------------+----------------------+
| Book         | Year of publication  |
+--------------+----------------------+
| Presentation | Date of Presentation |
+--------------+----------------------+
| Article      | Date of Publication  |
+--------------+----------------------+
| Event        | Held On              |
+--------------+----------------------+

ฉันควรทำอย่างไรดี? ฉันควรสร้างฟิลด์เดียวสำหรับประเภทเนื้อหาหนึ่ง & ใช้สำหรับประเภทเนื้อหาอื่นทั้งหมดหรือสร้างฟิลด์สำหรับแต่ละประเภทเนื้อหาหรือไม่

ช่วยฉันเข้าใจอย่างชัดเจนว่าควรใช้ฟิลด์ที่มีอยู่อีกครั้งเมื่อใดและอย่างไร

คำตอบ:


8

ฉันควรสร้างฟิลด์ "เขียนโดย" (คำอ้างอิงถึงผู้เขียน) สำหรับแต่ละประเภทเนื้อหาหรือสร้างฟิลด์สำหรับประเภทเนื้อหาหนึ่งประเภทและใช้ในประเภทเนื้อหาอื่น ๆ หรือไม่

หากคุณต้องการรวบรวมข้อมูลเดียวกันสำหรับประเภทเนื้อหาที่แตกต่างกันคุณควรใช้ฟิลด์เดียว ฟิลด์ "เขียนโดย" ของคุณดูเหมือนจะเป็นกรณีที่สมบูรณ์แบบ หากคุณมีคำศัพท์ที่แตกต่างกันสำหรับผู้แต่งพูด "ผู้แต่งหนังสือ" "ผู้เขียนบทความ" ฯลฯ คุณต้องการ (และจำเป็น) ในการใช้ฟิลด์แยกสำหรับแต่ละฟิลด์

อะไรคือข้อดี / ข้อเสียของทั้งสองวิธี

ข้อดีอย่างหนึ่งคือคุณสามารถสอบถามชนิดเนื้อหาทั้งหมดตามฟิลด์เดียว ดังนั้นหากคุณต้องการดูเนื้อหาทั้งหมดที่เขียนโดยผู้เขียนคนเดียวหรือแม้แต่เนื้อหาทั้งหมดที่เขียนโดยผู้เขียนทั้งหมดคุณจะสามารถสร้างมุมมองได้ง่ายขึ้น แต่มันก็มีประโยชน์ก็ต่อเมื่อคุณต้องการ ฉันคิดว่าประเด็นหลักคือกรณีการใช้งานของสนามตัวเองจริง ๆ แล้วจะกำหนดข้อดี / ข้อเสียญาติของวิธีการอย่างใดอย่างหนึ่ง

นอกจากนี้เมื่อใดก็ตามที่คุณสร้างเขตข้อมูลคุณจะสร้างตารางฐานข้อมูลสองตาราง (ตารางหนึ่งสำหรับข้อมูลปัจจุบันและอีกตารางหนึ่งสำหรับแก้ไขข้อมูล) มีเราจะพูดว่า "ผสม" ความรู้สึกเกี่ยวกับวิธีการเก็บข้อมูลนี้เป็นความคิดที่ดีที่สุดจากมุมมองประสิทธิภาพและบางคนชอบที่จะเก็บจำนวนตารางลง เมื่อคุณแนบฟิลด์ที่มีอยู่เข้ากับชนิดเนื้อหาอื่นตารางฐานข้อมูลเดียวกันจะถูกใช้กับฟิลด์ทั้งหมดดังนั้นกล่องนั้นจะถูกเลือก อีกครั้งแม้ว่าจะเหมาะสมเมื่อข้อมูลของคุณสามารถแยกออกได้

จะเกิดอะไรขึ้นถ้าฉันลบเขตข้อมูลที่นำกลับมาใช้ใหม่จากประเภทเนื้อหาหนึ่ง มันจะถูกลบในคนอื่น ๆ ทั้งหมดหรือไม่

ฟิลด์จะถูกลบก็ต่อเมื่อมันถูกแยกออกจากเนื้อหาทุกประเภท ข้อมูลที่เป็นของประเภทเนื้อหาที่คุณแยกออกจากเขตข้อมูลจะถูกย้ายไปยังตารางข้อมูลที่ถูกลบและจะถูกลบระหว่างการทำงาน cron

ในกรณีที่ 2 และถามตัวเองว่านี้ ...

โปรดทราบว่าคุณสามารถมีป้ายกำกับที่แตกต่างกันสำหรับอินสแตนซ์ของแต่ละประเภทเนื้อหาในฟิลด์เดียวกันซึ่งจะทำให้คุณมีคิวภาพ (หรือนำข้อมูล) เพียงพอเพื่อให้คุณทราบความแตกต่างระหว่างข้อมูลหรือไม่

ถ้าเป็นเช่นนั้นให้ใช้ฟิลด์วันที่เดียวเพื่อรับข้อดีดังกล่าวข้างต้น ถ้าไม่เช่นนั้นการออกแบบข้อมูลของคุณจะมีฟิลด์แยกต่างหาก

ทุกอย่างมาลงในสิ่งที่เหมาะสมสำหรับเว็บไซต์ของคุณโดยเฉพาะ แต่หวังว่าข้างต้นจะช่วยให้คุณมีทางข้างหน้า


ฉันไม่เข้าใจสิ่งนี้:Keeping in mind that you can have different labels for each content type's instance of the same field, will that give you enough of a visual (or data-led) cue to let you know the differences between the data?
กรงเล็บ

4
ฉันแค่หมายความว่ามันขึ้นอยู่กับคุณที่จะเลือกตามสิ่งที่คุณต้องทำกับข้อมูลของคุณ - การตีพิมพ์และวันที่นำเสนอเป็นตัวอย่างมันมีความสำคัญกับคุณหรือไม่ถ้าสิ่งเหล่านั้นถูกแยกออก? คุณต้องการกรองเนื้อหาตามวันที่นั้นหรือไม่? มันจะให้ผลลัพธ์ที่ไม่พึงประสงค์แก่คุณหรือไม่ถ้าคุณใช้ฟิลด์เดียวและรับข้อมูลสำหรับเนื้อหาทุกประเภทเมื่อทำการกรองในฟิลด์นั้น นี่เป็นคำถามที่ถามตัวเอง มันเป็นปัญหาการออกแบบข้อมูลจริง ๆ ระบบของนิติบุคคล / ฟิลด์ของ Drupal เป็นเพียงเลเยอร์ที่เป็นนามธรรมของมัน ถ้าออกแบบนอก Drupal คุณจะเอาข้อมูลนั้นไปไว้ในตารางเดียวกันหรือไม่?
Clive
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.