เขียนให้ดูคงไม่ไหวเพราะไม่รู้ออกแบบฐานข้อมูลไว้ยังไงบ้าง
การเซิช keyword ในฐานข้อมูล
- เก็บ keyword เป็นตัวหนังสือลงในฐานข้อมูลด้วย โดยการสร้าง field หรือ Attribute (จะเรียกอะไรก็แล้วแต่) เก็บข้อมูลประเภทข้อความ
- เวลาเซิชให้คำสั่ง select โดยใช้เครื่องหมาย % หรือ _ ผสมกับ keyword ที่ต้องการหา เช่น
โค้ด: เลือกทั้งหมด
$keyword = "web";
$sql = "select * from content where keyword like '%$keyword%' ";
*เครื่องหมาย % หมายถึงอะไรก็ได้ เช่น %web% หมายถึง มีคำอะไรก็ได้อยู่หน้าคำว่า web และคำอะไรก็ได้อยู่หลังคำว่า web
โค้ด: เลือกทั้งหมด
$keyword = "web";
$sql = "select * from content where keyword like '_w%$keyword%' ";
*เครื่องหมาย _ หมายความว่ามีอะไรก็ได้ที่ตามหลังเครื่องหมาย _ 1 ตัว เช่น _w ต้องมี w 1 ตัว
ถ้ารู้แค่นี้แล้วก็สามารถนำไปประยุกต์ใช้ต่อได้
การค้นหาแบบนี้เป็นเพียงพื้นฐานเท่านั้น หากต้องการนำไปใช้งานที่ซับซ้อนมากๆ อาจจะทำให้การค้นหาช้า และอาจจะต้องใช้เงื่อนไขเยอะมากมาย เช่น Search Engine ทั้งหลายอย่างกูเกิ้ล เค้าไม่ได้ใช้การค้นหาแบบนี้ เพราะว่าต้องมีการแปลความหมายของ keyword ใส่เข้ามาซึ่งอาจจะไม่ได้ตรงกับฐานข้อมุลที่เก็บไว้ แต่มันสื่อความหมายว่าต้องการ keyword คำนั้น เช่น เราต้องการรู้เรื่องๆนึง แต่เรานึกชื่อเรื่องนั้นไม่ออก เราพอจำได้เพียงเนื้อหาบางช่วงเท่านั้น เราก็พิมพ์ลงไปโดยใช้ เนื้อหาบางช่วงที่พอจำได้นั่นแหละ การค้นหาแบบนี้ต้องใช้การประมวลผลหลายเงื่อนไขมากๆ เพราะฉะนั้นเค้าก็จะใช้การเขียนโปรแำกรมลงไปในฐานข้อมูลเลย ในส่วนของ Oracle จะใช้ PL/SQL ถ้าเป็น Mysql จะใช้ TRIGGER เนื้อหาพวกนี้สามารถค้นหาดูได้ในเรื่องของ Information retrieval system