คำถามติดแท็ก primary-key

คีย์คือชุดของแอ็ตทริบิวต์ที่ไม่ซ้ำกันและไม่สามารถเป็นโมฆะได้ภายในตาราง

7
Foreign Key หมายถึงคีย์หลักในหลายตาราง?
ฉันต้องมีสองตารางคือพนักงาน _ce และพนักงาน _ ภายใต้ฐานข้อมูลพนักงาน ทั้งสองมีคอลัมน์คีย์หลักที่ไม่ซ้ำกันตามลำดับ ฉันมีตารางอื่นที่เรียกว่าการหักเงินซึ่งมีคอลัมน์คีย์ต่างประเทศที่ฉันต้องการอ้างอิงถึงคีย์หลักของพนักงาน _ce และพนักงาน _sn เป็นไปได้หรือไม่ ตัวอย่างเช่น employees_ce -------------- empid name khce1 prince employees_sn ---------------- empid name khsn1 princess เป็นไปได้ไหม deductions -------------- id name khce1 gold khsn1 silver

6
การใช้ UUID เป็นคีย์หลักในโมเดล Django (ผลกระทบของความสัมพันธ์ทั่วไป)
ด้วยเหตุผลหลายประการ ^ ฉันต้องการใช้ UUID เป็นคีย์หลักใน Django บางรุ่นของฉัน หากฉันทำเช่นนั้นฉันจะยังสามารถใช้แอปภายนอกเช่น "Contrib.comments", "django-vote" หรือ "django-tagging" ซึ่งใช้ความสัมพันธ์ทั่วไปผ่าน ContentType ได้หรือไม่ การใช้ "django-vote" เป็นตัวอย่างรูปแบบการโหวตจะมีลักษณะดังนี้: class Vote(models.Model): user = models.ForeignKey(User) content_type = models.ForeignKey(ContentType) object_id = models.PositiveIntegerField() object = generic.GenericForeignKey('content_type', 'object_id') vote = models.SmallIntegerField(choices=SCORES) ดูเหมือนว่าแอปนี้จะสมมติว่าคีย์หลักสำหรับโมเดลที่โหวตเป็นจำนวนเต็ม ดูเหมือนว่าแอปความคิดเห็นในตัวจะสามารถจัดการ PK ที่ไม่ใช่จำนวนเต็มได้แม้ว่า: class BaseCommentAbstractModel(models.Model): content_type = models.ForeignKey(ContentType, verbose_name=_('content type'), related_name="content_type_set_for_%(class)s") object_pk = …

5
เหตุใดจึงเลือก SCOPE_IDENTITY () ส่งคืนทศนิยมแทนที่จะเป็นจำนวนเต็ม
ดังนั้นฉันจึงมีตารางที่มีคอลัมน์ข้อมูลประจำตัวเป็นคีย์หลักดังนั้นมันจึงเป็นจำนวนเต็ม เหตุใดจึงSCOPE_IDENTITY()ส่งคืนค่าทศนิยมแทนที่จะเป็น int ไปยังแอปพลิเคชัน C # ของฉันเสมอ นี่เป็นเรื่องที่น่ารำคาญจริงๆเนื่องจากค่าทศนิยมจะไม่แปลงเป็นจำนวนเต็มใน C # โดยปริยายซึ่งหมายความว่าตอนนี้ฉันต้องเขียนสิ่งต่างๆมากมายและมีวิธีการช่วยเหลือมากมายเพราะฉันใช้ SQL Server และ Postgres ซึ่ง Postgres จะส่งคืนจำนวนเต็มสำหรับ ฟังก์ชันเทียบเท่า .. ทำไมSCOPE_IDENTITY()ไม่คืนค่าจำนวนเต็มธรรมดา มีคนทั่วไปที่ใช้ค่าทศนิยม / ไม่ใช่ตัวตนสำหรับคีย์หลักหรือไม่?

26
คุณชอบคีย์หลักของคุณอย่างไร? [ปิด]
ตามที่กล่าวมาในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบถาม & ตอบของเรา เราคาดหวังว่าคำตอบจะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้อาจก่อให้เกิดการถกเถียงโต้แย้งการสำรวจความคิดเห็นหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงได้และอาจเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อรับคำแนะนำ ปิดให้บริการใน8 ปีที่ผ่านมา ในการอภิปรายที่ค่อนข้างเคลื่อนไหวในทีมของฉันฉันถูกทำให้คิดว่าคนส่วนใหญ่ชอบอะไรเป็นคีย์หลัก เรามีกลุ่มต่อไปนี้ - Int / BigInt ซึ่งการเพิ่มอัตโนมัติเป็นคีย์หลักที่ดีพอ ควรมีอย่างน้อย 3 คอลัมน์ที่ประกอบเป็นคีย์หลัก Id, GUID และตัวระบุแถวที่มนุษย์อ่านได้ทั้งหมดควรได้รับการปฏิบัติที่แตกต่างกัน แนวทางที่ดีที่สุดสำหรับ PK คืออะไร? จะดีมากถ้าคุณสามารถแสดงความคิดเห็นของคุณได้ มีแนวทางที่ดีกว่าข้างต้นหรือไม่? แก้ไข: ใครมีตัวอย่าง / อัลกอริทึมง่ายๆในการสร้างตัวระบุที่มนุษย์อ่านได้สำหรับแถวที่ปรับขนาดได้ดี?

14
เมื่อใช้ Rails ฉันจะตั้งค่าคีย์หลักไม่ให้เป็นคอลัมน์ที่พิมพ์จำนวนเต็มได้อย่างไร
ฉันใช้การโอนย้าย Rails เพื่อจัดการสคีมาฐานข้อมูลและฉันกำลังสร้างตารางง่ายๆที่ฉันต้องการใช้ค่าที่ไม่ใช่จำนวนเต็มเป็นคีย์หลัก (โดยเฉพาะสตริง) ห่างนามธรรมจากปัญหาของฉันสมมติว่ามีตารางที่พนักงานมีการระบุโดยสตริงและตัวเลขเช่นemployees"134SNW" ฉันได้ลองสร้างตารางในการย้ายข้อมูลดังนี้: create_table :employees, {:primary_key => :emp_id} do |t| t.string :emp_id t.string :first_name t.string :last_name end สิ่งนี้ให้ฉันคือสิ่งที่ดูเหมือนว่ามันไม่สนใจบรรทัดทั้งหมดt.string :emp_idและดำเนินการต่อและทำให้เป็นคอลัมน์จำนวนเต็ม มีวิธีอื่นอีกไหมที่จะทำให้รางสร้างข้อ จำกัด PRIMARY_KEY (ฉันใช้ PostgreSQL) ให้ฉันโดยไม่ต้องเขียน SQL ในการexecuteโทร? หมายเหตุ : ฉันรู้ว่าไม่ควรใช้คอลัมน์สตริงเป็นคีย์หลักดังนั้นโปรดอย่าตอบเพียงแค่บอกว่าให้เพิ่มคีย์หลักจำนวนเต็ม ฉันอาจเพิ่มได้ แต่คำถามนี้ยังใช้ได้
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.