Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

सरल MySQL db डिज़ाइन पर एक टिप चाहिए

आपके पास एक attribute क्यों है? टेबल ?

विशेषताएँ स्तंभ हैं, तालिकाएँ नहीं।

वेबसाइट का लिंक हमें कुछ नहीं बताता।

डेटाबेस का पूरा विचार यह है कि आप प्रत्येक क्वेरी के लिए आवश्यकतानुसार कई छोटी तालिकाओं में शामिल हो जाते हैं, इसलिए आपको इसकी आदत डालनी होगी। ज़रूर, यह आपको एक ग्रिड देता है, लेकिन एक छोटा और मीठा, बिना नल के। आप जो करने की कोशिश कर रहे हैं वह टेबल से बचना है; केवल एक विशाल ग्रिड के साथ जाएं, जो नल से भरा है।

(स्निप)

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

अपवाद पीके है, जिसे पूरी तरह से प्रस्तुत किया जाता है, और उस रूप में उपयोग किया जाता है जहां भी यह एक एफके होता है।

साइट ब्राउज़ करें, और कुछ SQL प्रश्न पढ़ें।

ऐसा करने के बाद, आप बाद में सोच सकते हैं कि क्या आप चाहते हैंstrength और defense type . के एट्रिब्यूट (कॉलम) होने के लिए; या नहीं। वगैरह।

टिप्पणियों के प्रतिसाद 30 नवंबर 10

.
उत्कृष्ट, आप अपने डेटा को समझते हैं। सही। अब मैं समझता हूं कि आपके पास एक विशेषता तालिका क्यों थी।

  1. कृपया सुनिश्चित करें कि वे 10 उदाहरण प्रतिनिधि हैं, मैं उन्हें करीब से देख रहा हूं।

    • प्रकार:रत्न का नाम:एम्बरस्पार्क पेंडेंट ... या, क्या नेकविविध प्रकार है?
    • क्या Unique एक सही ItemType है? मुझे नहीं लगता
    • Action.Display "कृपया सीज़न ऑर्गनाइज़र के पास वापस लौटें"
    • AttackPower के लिए विशेषताएँ कहाँ हैं? और HitRating ?
      .
  2. मेरे उत्पाद क्लस्टर उदाहरण के अलावा, कितने अलग-अलग प्रकार के आइटम (35,000 में से) हैं। उस प्रश्न को बताने का एक और तरीका यह है कि कितनी विविधताएँ हैं। मेरा मतलब है, अर्थपूर्ण रूप से, 3500 आइटम 8 गुण नहीं ?

  3. क्या item_attributes बिना के बदल जाएंगे s/w का विमोचन (उदा. एक नया Inner Strength गुण) ?

  4. प्रति आइटम, क्या विशेषताएँ दोहराई जा रही हैं (एक से अधिक); अभी तक मुझे केवल एक्शन दिखाई दे रहा है?

  5. यह एक खेल है, इसलिए आपको एक डीबी की आवश्यकता है जो तंग और बहुत तेज़ हो, शायद पूरी तरह से स्मृति निवासी, ठीक है। कोई शून्य नहीं। कोई वीएआर कुछ भी नहीं। सबसे छोटा डेटाटाइप। कभी भी कुछ भी डुप्लिकेट न करें (खुद को दोहराएं नहीं)। क्या आप बिट्स (बूलियन) और वैक्टर से खुश हैं?

  6. क्या आपको आसानी से उन रेगेक्स को एसक्यूएल में अनुवाद करने की ज़रूरत है, या आप प्रत्येक के लिए एक गंभीर स्लॉग से खुश हैं (यानी। एक बार जब आप उन्हें एसक्यूएल में काम कर लेते हैं तो वे बहुत स्थिर होते हैं और फिर आप इसके साथ गड़बड़ नहीं करते हैं, जब तक कि आपको कोई बग न मिल जाए ) (कोई कटाक्ष नहीं, गंभीर सवाल) ?

    6.1 या शायद यह दूसरा रास्ता है:डीबी डिस्क-निवासी है; आप इसे एक बार मेमोरी में लोड करते हैं; आप गेमप्ले के दौरान उस पर रेगेक्स चलाते हैं; कभी-कभी डिस्क पर लिखना। इसलिए रेगेक्स को SQL में अनुवाद करने की कोई आवश्यकता नहीं है?

यहाँ एक डेटा मॉडल है जहाँ मैं जा रहा हूँ, यह बिल्कुल निश्चित नहीं है; यह आपके उत्तरों द्वारा संशोधित किया जाएगा। स्पष्ट होना:

  • छठा सामान्य रूप है पंक्ति में प्राथमिक कुंजी और अधिक से अधिक एक विशेषता होती है।

  • मैंने (6.1) नहीं (6) ड्रा किया है, क्योंकि आपका डेटा मेरे विश्वास को पुष्ट करता है कि आपको एक शुद्ध 6एनएफ रिलेशनल डेटाबेस की आवश्यकता है

  • मेरा उत्पाद क्लस्टर डेटा मॉडल , बेहतर-से-ईएवी उदाहरण, 6NF है, फिर डेटाटाइप द्वारा फिर से सामान्यीकृत (सामान्य रूप अर्थ में नहीं), तालिकाओं की संख्या को कम करने के लिए, जिसे आप पहले ही देख चुके हैं। (ईएवी लोग आमतौर पर एक या कुछ विशाल टेबल के लिए जाते हैं।)

  • यह सीधा 5NF है, 6NF में दाईं ओर केवल 2 टेबल हैं।

गेम डेटा मॉडल से लिंक करें

IDEF1X नोटेशन से लिंक करें उन लोगों के लिए जो रिलेशनल मॉडलिंग स्टैंडर्ड से अपरिचित हैं।

#2 05 दिसंबर 10 संपादित करने के लिए प्रतिक्रिया

1.1. ठीक है, सही किया गया।

1.2. तब IsUnique आइटम के लिए एक संकेतक (बूलियन) है।

1.3. गतिविधि। मैं समझता हूँ। तो आप इसे कहाँ स्टोर करने जा रहे हैं?

1.4. NeckMiscellaneous का अर्थ है कि आइटम Neck की दोनों श्रेणियों में है और Misc . इसका मतलब है कि दो अलग Item.Name=Emberspark Pendant , प्रत्येक एक अलग श्रेणी के साथ।

.
2. और 5. तो आपको तेज़ तेज़ मेमोरी-निवासी डीबी की आवश्यकता है। इसलिए मैं आपको ग्रिडलैंड से दूर, रिलेशनल लैंड में लाने की कोशिश कर रहा हूं।

3. ठीक है, हम फिफ्थ नॉर्मल फॉर्म के साथ बने रहते हैं, 6NF या प्रोडक्ट क्लस्टर (टेबल प्रति डेटाटाइप) की कोई आवश्यकता नहीं है। Values को दूर करें सभी पूर्णांक हैं।
.
4. मैं अतिरिक्त रूप से देख सकता हूं:Level , RequiredLevel , IsUnique , BindsPickedUp , BindsEquipped .
.
5. बिट्स बूलियन हैं { 0 | 1}. (संबंधपरक) अनुमानों के लिए सदिशों की आवश्यकता होती है। हम उनसे बाद में मिलेंगे।
.
6. ठीक है, आपने समझाया है, आप नियमित अभिव्यक्तियों का SQL में अनुवाद नहीं कर रहे हैं। (स्लॉग का अर्थ है कठिन परिश्रम)..
7. श्रेणी.अभिभावक आईडी क्या है? अभिभावक श्रेणी ? यह पहले नहीं आया है।

8. विशेषता.जेनरेटेड आईडी?

कृपया डेटा मॉडल (अपडेटेड) का मूल्यांकन करें। आपके पास जो कुछ है, उसके अलावा मेरे पास कुछ और कॉलम हैं। अगर डेटा मॉडल में आपको कुछ समझ नहीं आता है, तो एक विशिष्ट प्रश्न पूछें। आपने नोटेशन दस्तावेज़ पढ़ा है, है ना?

मेरे पास Action है एक तालिका के रूप में, ItemAction . के साथ Value धारण करना :
Equip: increase attack power by 28 Action.Nameहै =Increase attack power by और ItemAction.Value =28.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. अज्ञात कॉलम '' 'फ़ील्ड सूची' में। जैंगो

  2. Mysql Concat दो कॉलम LIKE . के साथ खोजते समय

  3. कॉलम से अवांछित चरित्र हटाना

  4. MySQL INSERT INTO ... Values ​​and SELECT

  5. mysql के लिए अधिकतम क्वेरी आकार क्या है?