เมื่อออกแบบ schema ฐานข้อมูลเชิงสัมพันธ์สำหรับเว็บแอปพลิเคชันฉันมักจะพบกรณีที่ฉันท้ายสร้างตารางเพียงเพื่อประกอบด้วยหนึ่งแถวและแถวเดียวเท่านั้น รู้สึกว่าเป็นวิธีที่ผิดในการออกแบบ แต่ฉันไม่สามารถหาอะไรที่ดีกว่าอย่างมีนัยสำคัญได้หรือว่าเป็น "วิธีที่ถูกต้องในการทำมัน"
ตัวอย่างล่าสุดคือไซต์ที่ให้ผู้ใช้ควบคุมเนื้อหาบนหน้าแรกด้วยตนเอง มีหน้าแรกเพียงหน้าเดียว ฉันสร้างตารางที่มีฟิลด์ที่จำเป็นทั้งหมดเพื่อสร้างโฮมเพจเช่นฟิลด์ข้อความสำหรับพื้นที่ที่มีข้อความอธิบาย ฟิลด์สำหรับจัดเก็บชื่อของไฟล์ภาพขนาดใหญ่ คีย์ต่างประเทศบางตัวที่ชี้ไปยังบทความที่จะให้ความสำคัญกับหน้าแรก ฯลฯ ทำงานได้ แต่รู้สึกผิดที่มีตารางที่มีแถวเดียว
ในอดีตที่ผ่านมาฉันได้ลองการออกแบบอื่น ๆ เช่นการอนุญาตให้มีหลายแถวในตารางหน้าแรกและการเลือกแบบสุ่ม ฉันได้ลองเพิ่มเขตข้อมูลบูลีนชื่อ "ใช้งานอยู่" และเลือกหนึ่งในหน้าแรกที่ใช้งานอยู่แบบสุ่ม ฉันพยายามบังคับให้แถวเดียวใช้งานได้ตลอดเวลาตามที่กำหนดในตรรกะของแอปพลิเคชัน ฉันไม่ได้พยายามสร้างตารางหน้าแรกและมีรายการอื่น ๆ เช่นบทความเพื่อให้มีฟิลด์บูลีนที่มีชื่อเช่น featured_on_homepage
ในกรณีส่วนใหญ่ฉันสามารถสร้างหน้าแรกด้วยค่าคงที่จำนวนมากในไฟล์การตั้งค่า ปัญหาหลักของไฟล์การตั้งค่าคืออยู่ภายใต้การควบคุมของนักพัฒนาซอฟต์แวร์ เนื่องจากสิ่งที่ชอบเนื้อหาของโฮมเพจเป็นสิ่งที่ผู้ใช้จะต้องแก้ไขจึงต้องไปที่ฐานข้อมูล
ในหลาย ๆ เว็บไซต์ฉันไม่มีปัญหานี้เพราะฉันสามารถสร้างสิ่งต่าง ๆ เช่นหน้าแรกด้วยแบบสอบถามเช่นการเลือกบทความใหม่ล่าสุดห้ารายการ แต่เมื่อฉันมีหน้าที่ดูแลด้วยตนเองด้วยข้อกำหนดที่เข้มงวดมันจะยุ่งยากในการสร้างแบบจำลองในฐานข้อมูล แต่ลองจินตนาการว่าคุณมีโต๊ะรูปถ่ายและโต๊ะบทความ ข้อกำหนดคือหน้าแรกจะแสดงภาพถ่ายห้าภาพบทความสามบทความและข้อความสองบล็อกโดยผู้ใช้ควบคุมด้วยตนเอง คุณทำแบบนั้นในฐานข้อมูลอย่างถูกต้องได้อย่างไร
นอกจากนี้ฉันมีปัญหาการสร้างแบบจำลองในกรณีอื่น ๆ นอกเหนือจากหน้าแรกเพียง มันเป็นเพียงตัวอย่างที่ง่ายที่สุดและใช้ได้โดยทั่วไปที่ฉันสามารถหาได้