ฉันมีหน้า html ยาวหนึ่งหน้าชุดคำถามหลายชุดแบ่งออกเป็นส่วนเล็ก ๆ (ประมาณ 15 ส่วนย่อยในหน้าเดียว) คำถามทั้งหมดมีประมาณ 100 คำถาม: แตกต่างกันไปจากอินพุตตัวเลือกหลายตัวเลือกช่องทำเครื่องหมายปุ่มตัวเลือกข้อความ และอัพโหลดไฟล์ คำถามหนึ่งข้ออาจมีคำตอบมากมายซึ่งได้มาจากกลุ่มของช่องทำเครื่องหมายกลุ่มของรายการที่เลือกกลุ่มของหลายตัวเลือกหรือทั้งหมดรวมกันเป็นคำตอบเดียว ฉันคิดว่าฉันจะใช้การออกแบบฐานข้อมูลด้านล่าง แต่พบว่าเมื่อเร็ว ๆ นี้ว่ามันไม่ใช่วิธีการที่ดี
- ลูกค้าหนึ่งรายสามารถมีคำถามได้หนึ่งชุดเท่านั้น: ลูกค้าหนึ่งรายต่อคำถาม 100 ข้อ
- สำหรับวิธีเก่าฉันไม่เก็บคำถามในฐานข้อมูล แต่กำหนดเป็นค่าคงที่ในการเข้ารหัส PHP แทน ปัญหาคือฉันต้องเปรียบเทียบคำถามใน PHP เพื่อให้ตรงกับคำตอบในฐานข้อมูล หากคำถามหนึ่งมีการเปลี่ยนแปลง / ลบ / ย้ายจาก PHP ฉันจะหลงทางเพื่อให้ตรงกับคำตอบในฐานข้อมูลแบบสอบถาม ทางออกที่ดีกว่า
- ฉันสามารถเก็บหลายคำตอบที่ได้รับจากองค์ประกอบหลายอย่างในรูปแบบลงในฟิลด์เดียวเป็นคำตอบเดียว ฉันจะดึงข้อมูลนี้และแสดงมันอีกครั้งเพื่อให้ลูกค้าดูในแบบฟอร์มได้อย่างไร?
- ฉันควรเลือกตัวเลือกใดด้านล่างนี้
ตัวเลือก 1: วิธีการแบบเก่า (1 ตาราง)
ตาราง: แบบสอบถาม
- ID (PK)
- รหัสลูกค้า
- สถานะ
- A1
- A2
- A3
- .
- .
- .
- A100
ตัวเลือกที่ 2: วิธีการใหม่ (2 ตาราง)
ตาราง: คำถาม
- QID (PK)
- คำถาม (varchar)
ตาราง: คำตอบ
- เครื่องช่วย (PK)
- รหัสลูกค้า
- QID (int)
- คำตอบ (varchar)
หรือตัวเลือก 3