ฉันได้รับการเลี้ยงดูโรงเรียนเก่า - ที่เราเรียนรู้การออกแบบสคีมาฐานข้อมูลก่อนที่ชั้นธุรกิจของแอปพลิเคชัน (หรือใช้ OOAD สำหรับทุกอย่างอื่น) ฉันค่อนข้างดีกับการออกแบบ schemas (IMHO :) และปรับให้เป็นมาตรฐานเท่านั้นเพื่อลบความซ้ำซ้อนที่ไม่จำเป็นออกไป แต่ส่วนใหญ่มันไม่ใช่
ด้วยการถือกำเนิดของกรอบ ORM บางอย่างเช่น Ruby ActiveRecord หรือ ActiveJDBC (และอีกไม่กี่ฉันจำไม่ได้ แต่ฉันแน่ใจว่ามีมากมาย) ดูเหมือนว่าพวกเขาชอบที่จะมีคีย์ตัวแทนสำหรับทุกตารางแม้ว่าบางคนมีคีย์หลักเช่น 'email' - ทำลาย 2NF เอาล่ะ โอเคฉันเข้าใจไม่มากเกินไป แต่มันก็เกิดขึ้นในประสาทของฉัน (เกือบ) เมื่อ ORM เหล่านี้ (หรือโปรแกรมเมอร์) บางคนไม่ยอมรับ 1-1 หรือ 1-0 | 1 (เช่น 1 ถึง 0 หรือ 1) พวกเขากำหนดว่าจะดีกว่าที่จะมีทุกอย่างให้เป็นตารางขนาดใหญ่ไม่ว่าจะมีnulls
"ระบบในปัจจุบันสามารถจัดการกับมันได้"เป็นความคิดเห็นที่ฉันได้ยินบ่อยขึ้น
ฉันยอมรับว่าข้อ จำกัด ของหน่วยความจำมีความสัมพันธ์โดยตรงกับการทำให้เป็นมาตรฐาน (มีประโยชน์อื่นเช่นกัน :) แต่ในวันนี้เวลากับหน่วยความจำราคาถูกและเครื่อง quad-core เป็นแนวคิดของการปรับสภาพฐานข้อมูล DB เพิ่งเหลือไว้กับตำรา? ในฐานะ DBA คุณยังคงฝึกการทำให้เป็นมาตรฐานอยู่ที่ 3NF (ถ้าไม่ใช่ BCNF :) มันสำคัญไหม การออกแบบ "schema สกปรก" นั้นดีสำหรับระบบการผลิตหรือไม่ เราควรทำให้เรื่องของ "มาตรฐาน" เป็นจริงได้อย่างไรถ้ามันยังเกี่ยวข้องกัน
( หมายเหตุ:ฉันไม่ได้พูดถึง schemas ดาว / เกล็ดหิมะของดาต้าแวร์เฮาส์ที่มีความซ้ำซ้อนเป็นส่วนหนึ่ง / ต้องการการออกแบบ แต่ระบบเชิงพาณิชย์ที่มีฐานข้อมูลแบ็กเอนด์เช่น StackExchange เป็นต้น)