ข้ามไปยังเนื้อหา

โครงสร้างของข้อมูล

เพื่อให้ฐานข้อมูลเป็นระเบียบ มีมาตรฐาน และเข้าใจง่าย เราได้ออกแบบ โครงสร้างของข้อมูล (schema) เพื่อกำหนดว่า node กี่ประเภท ในแต่ละประเภทมี property อะไร และ node เหล่านั้นสามารถเชื่อมต่อกันเพื่อสร้างความสัมพันธ์อย่างไรได้บ้าง

เราออกแบบ schema ของ Politigraph จาก Popolo - International open government data specifications พร้อมกับการปรับปรุงให้เข้ากับ context ของประเทศไทย ซึ่ง schema จะประกอบด้วย

  1. Object: ประเภทของ node ข้อมูลจริง พร้อมระบุ property ที่มีใน node ประเภทนั้นๆ
  2. Interface: ประเภทที่เป็นข้อกำหนดพื้นฐานให้ประเภทอื่นๆ นำไปใช้ต่อ
  3. Union: เซ็ตของประเภทที่เป็นไปได้
  4. Relationship: ความสัมพันธ์ที่เป็นไปได้ระหว่าง node ประเภทต่างๆ

ลองเลือก entity ต่างๆ เพื่ออ่านคำอธิบาย

ยกตัวอย่างเช่น เรามีข้อมูลของคนที่มีชื่อขึ้นต้นด้วยคำว่า “ณัฐ” เป็น node ประเภท Person ดังนั้นทั้งสามคน จะมี property และ relationship มากกว่าตามที่กำหนดไว้ใน Person schema ไม่ได้ (แต่ไม่มี property ที่ไม่ได้บังคับได้ ในกรณีนี้ property นั้นๆ จะมีค่าเป็น null)

ณัฐ อินทรเจริญณัฐกิตติ์ หนูรอดณัฐจิรา อิ่มวิเศษณัฐชา บุญไชยอินสวัสด...ณัฐพงศ์ เปรมพูลสวัสด...ณัฐพงษ์ พิพัฒน์ไชยศิ...ณัฐพงษ์ สุปริยศิลป์ณัฐพงษ์ สุมโนธรรมณัฐพงษ์ เรืองปัญญาวุ...ณัฐพล นาคพาณิชย์ณัฐพล สืบศักดิ์วงศ์ณัฐพล โตวิจักษณ์ชัยก...ณัฐวุฒิ กองจันทร์ดีณัฐวุฒิ บัวประทุมณัฐวุฒิ ประเสริฐสุวร...
Person
Person

บุคคลที่เกี่ยวข้องทางการเมือง เช่น สมาชิกสภา สมาชิกพรรคการเมือง ฯลฯ

  • id: 2e66ac25-2345-4a18-b143-be0ccbba4f9c
  • prefix: พลเอก
  • name: ณัฐ อินทรเจริญ
  • image: https://politigraph.wevis.info/assets/people/ณัฐ-อินทรเจริญ.webp
  • birth_date: 1961-01-09
  • educations: - สถาบันทหาร วิทยาศาสตรบัณฑิต (การทหาร) โรงเรียนนายร้อยพระจุลจอมเกล้า
  • previous_occupations: - ปลัดกระทรวงกลาโหม - สมาชิกสภานิติบัญญัติแห่งชาติ (สนช.)

*Only showing nodes, properties, and relationships from the query see full schema

Relationship ใน schema จะมีชื่อเรียกพร้อมกับทิศทางตามหัวลูกศรเพื่อให้เราเข้าใจความสัมพันธ์ เช่น Post--IN--> Organization ทำให้เราเข้าใจว่า Post “อยู่ใน” Organization แต่ในกระบวนการ query ข้อมูล เราสามารถเข้าถึง relationship ได้ทั้งสองฝั่งของลูกศร ยกตัวอย่างเช่น Post มี property organizations และ Organization มี property posts ที่อ้างอิง node ซึ่งอยู่อีกฝั่งของ relationship นี้

คณะรัฐมนตรี คณะที่ 6...นายกรัฐมนตรี ครม. คณ...
Organization
Post
Organization

องค์กรที่เกี่ยวข้องทางการเมือง เช่น สส. สว. ครม. พรรคการเมือง ฯลฯ

  • id: คณะรัฐมนตรี-64
  • name: คณะรัฐมนตรี คณะที่ 64
  • posts:
    • นายกรัฐมนตรี ครม. คณะที่ 64

*Only showing nodes, properties, and relationships from the query see full schema