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

कैसीनो में 24/7 स्टाफ रोस्टर के लिए डेटाबेस मॉडल

एक गुणवत्ता प्रश्न को एक साथ रखने के लिए समय बिताने के लिए धन्यवाद। आपकी आवश्यकताएं बहुत अच्छी हैं और आपके सिस्टम के आपके विनिर्देश बहुत विस्तृत हैं। मैं Neo4j के लिए आपके स्पेक्स को ग्राफ डेटा मॉडल में अनुवाद करने में सक्षम था। नीचे देखें।

ऊपर आप एक काफी व्याख्यात्मक ग्राफ डेटा मॉडल देखेंगे। यदि आप इससे अपरिचित हैं, तो मेरा सुझाव है कि आप ग्राफ़ डेटाबेस पढ़ें:http://graphdatabases.com/ -- इस वेबसाइट पर आप पुस्तक की एक मुफ्त डिजिटल पीडीएफ प्रति प्राप्त कर सकते हैं लेकिन यदि आप एक हार्ड कॉपी खरीदना चाहते हैं तो आप इसे अमेज़ॅन पर पा सकते हैं।

आइए इमेज में ग्राफ मॉडल को तोड़ें। शीर्ष पर आपको एक समय अनुक्रमण संरचना दिखाई देगी जो (वर्ष) -> (महीना) -> (दिन) -> (घंटा) है, जिसे मैंने वाई एम डी एच के रूप में संक्षिप्त किया है। अंडाकार इंगित करते हैं कि ग्राफ जारी है, लेकिन स्क्रीन पर जगह के लिए मैंने केवल एक सब-ग्राफ दिखाया है।

यह समय सूचकांक आपको समय श्रृंखला उत्पन्न करने या अपने डेटा मॉडल पर कुछ ऐसे प्रश्न पूछने का तरीका देता है जो समय विशिष्ट हैं। बहुत उपयोगी।

छवि के निचले हिस्से में आपके कैसीनो के लिए आपका एंटरप्राइज़ डेटा मॉडल है। नोड्स आपकी व्यावसायिक वस्तुओं का प्रतिनिधित्व करते हैं:

  • खेल
  • तालिका
  • कर्मचारी
  • कौशल

ग्राफ़ डेटाबेस के बारे में सबसे अच्छी बात यह है कि आप इस छवि को देख सकते हैं और अपने संबंधों के द्वारा एक नोड से दूसरे नोड में कूदकर अपने प्रश्न की भाषा को शब्दार्थ रूप से समझ सकते हैं।

यहां एक साइफर क्वेरी है जिसका उपयोग आप डेटा मॉडल के बारे में अपने प्रश्न पूछने के लिए कर सकते हैं। आप अपने प्रश्नों से मेल खाने के लिए इसे थोड़ा सा ट्वीक कर सकते हैं।

MATCH (employee:Employee)-[:HAS_SKILL]->(skill:Skill),
      (employee)<-[:DEALS]-(game:Game)-[:LOCATION]->(table:Table),
      (game)-[:BEGINS]->(hour:H)<-[*]-(day:D)<-[*]-(month:M)<-[*]-(year:Y)
WHERE skill.type = "Blackjack" AND 
      day.day = 17 AND 
      month.month = 1 AND 
      year.year = 2014
RETURN employee, skill, game, table

उपरोक्त क्वेरी उन सभी कर्मचारियों के लिए उप-ग्राफ ढूंढती है जिनके पास कौशल ब्लैकजैक है और एक विशिष्ट तिथि (1/17/14) पर उनकी तालिका और स्थान है।

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

चीयर्स,

केनी




  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 - तालिका ए में मूल्यों की सूची कैसे प्राप्त करें जो तालिका बी में मौजूद नहीं है?

  3. विशिष्ट श्रेणी के लिए गतिशील न्यूनतम मान (mysql)

  4. मायएसक्यूएल लाइक + पीएचपी स्प्रिंटफ

  5. Laravel 5.2 का उपयोग करके MySQL त्रुटि कोड और संदेशों को कैसे कैप्चर करें?