2011-12-20 17 views
6

के लिए मुझे अपने कार सिस्टम के लिए मेरे डेटाबेस डिज़ाइन के संबंध में एक दुविधा है (मेरे पिताजी के पास एक डीलरशिप है और मैं उसे एक नई प्रणाली बनाना चाहता हूं जहां उपयोगकर्ता टेस्ट ड्राइव, एपेटिंटमेन इत्यादि शेड्यूल कर सकता है ...)कारों के बारे में डेटाबेस - mysql

मैं undecide इन 2 मॉडलों के बीच हूँ:

table car 
id int, model_id int, make_id int, price float, year year, millage int, etc... 

या

table car 
id int, model enum, make enum, price float, year year, millage intetc... 

ग्राहक (आईडी int, नाम varchar के साथ तालिका, फोन पूर्णांक, सड़क varchar, शहर आदि ...

salemen (आईडी int, नाम varchar, आदि के साथ तालिका ...

अनुसूची तालिका (आईडी int, appt_Date datetime, car_id, CUSTOMER_ID, salemen_id)

अब मेरे सवाल यह है:

मैं enum क्षेत्रों का उपयोग करना चाहिए या मैं प्रत्येक enum क्षेत्रों के लिए एक मेज होना चाहिए? एक बार जब यह हर किसी के द्वारा उपयोग किया जाता है और फिर से शुरू होता है तो मैं सिस्टम को फिर से डिजाइन नहीं करना चाहता हूं।

धन्यवाद

उत्तर

4

मैं एक मुख्य कारण के लिए ईएनएन से दूर रहूंगा। यदि आप नए आइटम जोड़ना चाहते हैं, तो आपको तालिका को बदलना होगा। यदि आपके पास बहुत अधिक डेटा है तो दर्दनाक हो सकता है। इसके अलावा, आपके द्वारा उपयोग किए जाने वाले संयोजन और चरित्र सेट के आधार पर, आप केस संवेदनशीलता से सावधान रहें।

अधिक जानकारी के लिए यह लेख पढ़ें: 8 Reasons Why MySQL's ENUM Data Type Is Evil

अब एक संदर्भ डेटा/तालिका का उपयोग कर का उपयोग कर एक विदेशी कुंजी बेहतर है, क्योंकि आप एक डेटा अखंडता नियम हो सकता है। आप किसी डेटाबेस स्कीमा को बदलने या बदलने के बिना इन डेटा (मेक या मॉडल) को प्रबंधित करने के लिए एक सरल टूल बना सकते हैं।

+0

जानकारी और लेख के लिए धन्यवाद – fred

4

मेरी वरीयता पहला विकल्प होगा। उचित अन्य तालिकाओं के लिए int कुंजी के रूप में int का उपयोग करें। इस तरह, आप उन अन्य तालिकाओं में पंक्तियां जोड़ते हैं, और 'enum' मान स्वचालित रूप से मौजूद होते हैं।

आप सामान्य रूप में कुछ सामान्य मदद :)

4

मैं enum क्षेत्रों उपयोग नहीं किया है पाने के लिए कुछ बिंदु पर अपने प्रस्तावित टेबल पोस्ट करने के लिए कर सकते हैं।

संभावना से अधिक, आप PHP जैसे टूल का उपयोग करके इस पर एक एप्लिकेशन बनायेंगे। आप http://barrenfrozenwasteland.com/?q=node/7

पर प्रलेखित विधि के माध्यम से डीबी से मूल्य प्राप्त कर सकते हैं यह एक अलग तालिका से संभव मूल्यों को प्राप्त करने से थोड़ा अधिक अजीब है।

चूंकि आप तालिका परिभाषा स्वयं अपडेट वेब उपयोगकर्ता विशेषाधिकार देने की जरूरत नहीं है, एक अलग तालिका के साथ एक छोटे से अधिक लचीलापन होगा। एक enum क्षेत्र में 10,000ish विशिष्ट मूल्यों की सीमा भी प्रतीत होती है।

1

ENUM प्रयोग न करें।

क्यों?8 reasons.

+0

महान लेख धन्यवाद – fred

+0

हाँ, मुझे आशा है कि यह आपको अच्छी तरह से सेवा प्रदान करे .. मुझे इस बारे में भूलने के लिए मिल गया, वह लेख ..: डी – Nonym

संबंधित मुद्दे