हर Customer
एक भौतिक पता और एक वैकल्पिक डाक पते है। इसे मॉडल करने का आपका पसंदीदा तरीका क्या है?सबसे अच्छा तरीका मॉडल करने के लिए ग्राहक <--> पता
विकल्प 1. Customer
Address
Customer (id, phys_address_id, mail_address_id) Address (id, street, city, etc.)
विकल्प 2. Customer
के लिए विदेशी कुंजी Address
के लिए एक-से-अनेक संबंध है, जो पता प्रकार
Customer (id) Address (id, customer_id, address_type, street, city, etc.)वर्णन करने के लिए एक क्षेत्र शामिल है है
विकल्प 3. पता जानकारी को डी-सामान्यीकृत है और Customer
Customer (id, phys_street, phys_city, etc. mail_street, mail_city, etc.)
मेरी अधिभावी लक्ष्यों में से एक वस्तु-संबंधपरक मैपिंग आसान बनाने के लिए है, इसलिए मैं पहले दृष्टिकोण की ओर झुकाव रहा हूँ। आपके क्या विचार हैं?
आप cust_address_type और पता क्यों अलग करेंगे? दोनों में निहित जानकारी बिना किसी मुद्दे के एक टेबल पर बैठ सकती है। मुझे 2 टेबल पर कोई फायदा नहीं होगा जब 2 करेगा। – JM4
क्योंकि तब आपके पास प्रति ग्राहक 1 या अधिक पते हो सकते हैं उदा। बिलिंग, डिलीवरी इत्यादि। इसके अलावा आप तारीख फ़ील्ड के माध्यम से इतिहास को आसानी से ट्रैक कर सकते हैं। आपके पास एक ही पते पर कई ग्राहक हो सकते हैं और प्रत्येक को एक इकाई के रूप में मान सकते हैं लेकिन किसी आवश्यकता के लिए पते को बदलने से दूसरों को प्रभावित नहीं होता है। – Karl
यह मॉडल बहुत अच्छी परिस्थितियों के अनुरूप है जहां आपके पास अधिकांश पते की एक सूची है और उन्हें असाइन करें (उदाहरण के लिए यदि आपने पोस्ट ऑफिस या इसी तरह से पता सूची खरीदी है)। या जहां आप अपने क्षेत्र में अधिकांश पते रखने के लिए डेटाबेस काफी बड़ा है। – Karl