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

डेटाबेस डिजाइन प्रश्न

आप वास्तव में यह नहीं कहते कि आपकी पृष्ठभूमि क्या है और आप प्रोग्रामिंग के बारे में कितना जानते हैं और डेटाबेस डिज़ाइन . ऐसा लगता है कि आपको कुछ पढ़ना चाहिए। वैचारिक रूप से हालांकि आपका डिज़ाइन काफी सरल है। आपका विवरण केवल दो संस्थाओं की पहचान करता है:

  • वित्तीय साधन; और
  • उद्धरण।

तो फिर आपको विशेषताओं की पहचान करनी होगी।

वित्तीय साधन:

  • सुरक्षा कोड;
  • बाजार;
  • आदि.

उद्धरण:

  • टाइमस्टैम्प;
  • वित्तीय साधन;
  • बोली मूल्य; और
  • कीमत पूछें।

वित्तीय साधन का संदर्भ वह है जिसे विदेशी कुंजी कहा जाता है। . प्रत्येक तालिका को एक प्राथमिक कुंजी की भी आवश्यकता होती है , शायद सिर्फ एक ऑटो-इन्क्रीमेंट फ़ील्ड।

संकल्पनात्मक रूप से काफी सरल।

CREATE TABLE instrument (
  id BIGINT NOT NULL AUTO_INCREMENT,
  code CHAR(4),
  company_name VARCHAR(100),
  PRIMARY KEY (id)
);

CREATE TABLE quote (
  id BIGINT NOT NULL AUTO_INCREMENT,
  intrument_id BIGINT NOT NULL,
  dt DATETIME NOT NULL,
  bid NUMERIC(8,3),
  ask NUMERIC(8,3),
  PRIMARY KEY (id)
)

CREATE INDEX instrument_idx1 ON instrument (code);

CREATE INDEX quote_idx1 ON quote (instrument_id, dt);

SELECT (bid + ask) / 2
FROM instrument i
JOIN quote q ON i.id = q.instrument_id
WHERE i.code = 'GOOG'
AND q.dt >= '01-06-2008' AND q.dt < '02-06-2008'

यदि आपका डेटासेट पर्याप्त रूप से बड़ा है तो आप तालिका में (बोली + पूछना) / 2 शामिल करना चाहेंगे ताकि आपको तुरंत गणना न करनी पड़े।

ठीक है, तो यह सामान्यीकृत दृश्य है। इसके बाद आपको प्रदर्शन अनुकूलन करना शुरू करना पड़ सकता है। अरबों पंक्तियों को इसमें संग्रहीत करने के बारे में इस प्रश्न पर विचार करें MySQL . विभाजन MySQL 5.1+ (काफी नया) की एक विशेषता है।

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

डेटा की अरबों पंक्तियों को संग्रहीत करना एक गंभीर समस्या है और इसे हल करने के लिए आपको वास्तव में गंभीर सहायता की आवश्यकता है।



  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. बयान में के साथ मैसकल सीमा

  4. MySQL त्रुटि 2013

  5. यदि यह मौजूद नहीं है तो mysql तालिका बनाएं