มันมีเหตุผลที่จะทำเครื่องหมายคอลัมน์ทั้งหมด แต่เป็นหนึ่งในคีย์หลัก?
ฉันมีโต๊ะที่เป็นตัวแทนของภาพยนตร์ เขตข้อมูลคือ: id (PK), title, genre, runtime, released_in, tags, origin, downloads. ฐานข้อมูลของฉันไม่สามารถปนเปื้อนด้วยแถวที่ซ้ำกันดังนั้นฉันต้องการบังคับใช้ซ้ำ ปัญหาคือว่าภาพยนตร์ที่แตกต่างกันอาจมีชื่อเดียวกันหรือแม้กระทั่งเขตเดียวกันยกเว้นและtags downloadsวิธีการบังคับใช้เอกลักษณ์? ฉันคิดถึงสองวิธี: สร้างฟิลด์ทั้งหมดยกเว้นdownloadsคีย์หลัก ฉันติดตามdownloadsเพราะมันเป็น JSON และอาจส่งผลกระทบต่อประสิทธิภาพการทำงาน เก็บidเป็นคีย์หลักเท่านั้น แต่เพิ่มข้อ จำกัด ที่ไม่ซ้ำกับคอลัมน์อื่น ๆ ทั้งหมด (ยกเว้นอีกครั้งdownloads) ฉันอ่านคำถามซึ่งคล้ายกันมาก แต่ฉันไม่เข้าใจว่าฉันควรทำอย่างไร ขณะนี้ตารางนี้ไม่เกี่ยวข้องกับตารางอื่น ๆ แต่ในอนาคตอาจเป็น ในขณะนี้ฉันมีบันทึกน้อยกว่า 20,000 รายการเล็กน้อย แต่ฉันคาดว่าจำนวนจะเพิ่มขึ้น ฉันไม่รู้ว่าสิ่งนี้เกี่ยวข้องกับปัญหาหรือไม่ แก้ไข:ฉันแก้ไขสคีมาและนี่คือวิธีที่ฉันจะสร้างตาราง: CREATE TABLE movies ( id serial PRIMARY KEY, title text NOT NULL, runtime …