คำถามติดแท็ก normalization

17
เป็นการดีที่จะมีคีย์หลักจำนวนเต็ม autoincrement เสมอหรือไม่
ในฐานข้อมูลของฉันฉันมักจะติดนิสัยที่จะมีคีย์หลักจำนวนเต็มที่เพิ่มขึ้นอัตโนมัติพร้อมชื่อidสำหรับทุกตารางที่ฉันทำเพื่อที่ฉันจะได้ค้นหาที่ไม่ซ้ำสำหรับแถวใดแถวหนึ่ง นี่ถือว่าเป็นความคิดที่ไม่ดีหรือไม่? มีข้อเสียใด ๆ ในการทำเช่นนี้? บางครั้งฉันก็มีดัชนีหลายอย่างเช่นid, profile_id, subscriptionsที่idเป็นตัวระบุเฉพาะการprofile_idเชื่อมโยงไปยังต่างประเทศidของProfileตาราง ฯลฯ หรือมีสถานการณ์ที่คุณไม่ต้องการเพิ่มเขตข้อมูลดังกล่าวหรือไม่

3
มันเสียเปล่าไหมที่จะสร้างตารางฐานข้อมูลใหม่แทนที่จะใช้ชนิดข้อมูล enum?
สมมติว่าฉันมีบริการ 4 ประเภทที่ฉันเสนอให้ (พวกเขาไม่น่าจะเปลี่ยนแปลงบ่อย): การทดสอบ ออกแบบ การเขียนโปรแกรม อื่น ๆ สมมติว่าฉันมีบริการจริง 60-80 รายการที่แต่ละบริการจัดอยู่ในหมวดหมู่ข้างต้น ตัวอย่างเช่น 'บริการ' สามารถเป็น "โปรแกรมทดสอบโดยใช้เทคนิค A" และเป็นประเภท "การทดสอบ" ฉันต้องการเข้ารหัสให้เป็นฐานข้อมูล ฉันมากับตัวเลือกไม่กี่: ตัวเลือก 0: ใช้VARCHARโดยตรงเพื่อเข้ารหัสประเภทบริการโดยตรงเป็นสตริง ตัวเลือกที่ 1: enumฐานข้อมูลการใช้งาน แต่enum นั้นชั่วร้าย ตัวเลือก 2: ใช้สองตาราง: service_line_item (id, service_type_id INT, description VARCHAR); service_type (id, service_type VARCHAR); ฉันยังสามารถเพลิดเพลินกับ Referential Integrity: ALTER service_line_item ADD FOREIGN KEY …

6
คุณยังต้องการการทำดัชนีหลังจากการปรับฐานข้อมูลให้เป็นมาตรฐานหรือไม่
หลังจากคุณทำ normalization ได้ดีแล้วคุณยังต้องจัดทำดัชนีของตารางหรือไม่? สิ่งนี้จะส่งผลกระทบต่อประสิทธิภาพได้อย่างไร มันจะส่งผลกระทบต่อประสิทธิภาพในทางใดทางหนึ่งหลังจากการฟื้นฟูที่ดีหรือไม่? โดยปกติแล้วคอลัมน์ใดบ้างที่มีการจัดทำดัชนีหากคุณมีคีย์หลักและคีย์ต่างประเทศอยู่แล้ว ดูเหมือนว่าจะมีประสิทธิภาพในการทำให้ปกติฐานข้อมูล แต่ฉันอาจข้ามไปว่าการจัดทำดัชนีมีผลต่อฐานข้อมูลอย่างไร สิ่งนี้จะมีผลเฉพาะเมื่อมีการใช้แบบสอบถามหรือไม่ สิ่งนี้ทำงาน / ดำเนินการและทำให้ฐานข้อมูลดีขึ้นได้อย่างไร

4
มันไม่สมเหตุสมผลที่จะรวมความสัมพันธ์แบบหนึ่งต่อหนึ่งหรือไม่?
หากเรามีตาราง A ที่มีความสัมพันธ์แบบหนึ่งต่อหนึ่งกับตาราง B มันทำให้รู้สึกถึงความแตกต่างหรือไม่? หรือไม่เคยเจ็บที่จะรวมมันไว้ในตารางเดียว? ทำอย่างใดอย่างหนึ่งในสถานการณ์เหล่านี้ (สองตารางเทียบกับตารางที่รวมกันหนึ่งตาราง) ส่งผลต่อสิ่งใด ๆ ที่เกี่ยวกับรูปแบบปกติ (1NF, 2NF, 3NF ฯลฯ )
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.