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

डील ऐप के होमपेज और ईमेल को कस्टमाइज़ करें उपयोगकर्ता इतिहास के लिए धन्यवाद:रेल/पोस्टग्रेएसक्यूएल पर इसे सही तरीके से कैसे करें?

आपके द्वारा वर्णित स्कीमा उस प्रकार की क्वेरी के लिए बहुत कुशल होगी जिसमें आप रुचि रखते हैं, बशर्ते आप अपनी टेबल पर सही इंडेक्स डाल दें। डेटाबेस सूचियों की तरह व्यवहार नहीं करते हैं:यह सवाल पूछने पर कि "XXX ने किन सौदों में भाग लिया" पूरी तालिका को स्कैन नहीं करना चाहिए, क्योंकि सही ढंग से अनुक्रमित तालिका को पता चल जाएगा कि XXX के सभी सौदे कहां मिलेंगे।

इसे ठीक से सेट अप करने के लिए, आपके माइग्रेशन इस प्रकार दिखाई देंगे:

class CreateStandardUsers < ActiveRecord::Migration
  def change
    create_table :standard_users do |t|
      t.string :name
      t.timestamps
      # More fields go here
    end

    add_index :standard_users, :name
  end
end

class CreateDeals < ActiveRecord::Migration
  def change
    create_table :deals do |t|
      t.references :admin_user
      # other fields go here
    end

    add_index :deals, :admin_user_id
    # other indices go here... anything you want to search on efficiently.
  end
end

class CreateDealParticipations < ActiveRecord::Migration
  def change
    create_table :deal_participations do |t|
      t.references :standard_user
      t.references :deal

      t.timestamps
    end

    add_index :deal_participations, :standard_user_id
    add_index :deal_participations, :deal_id
    add_index :deal_participations, :created_at
  end
end

इन माइग्रेशन में अभी भी बहुत कुछ है (उदाहरण के लिए आपको गैर-शून्य बाधाओं, विशिष्टता बाधाओं आदि को जोड़ना चाहिए)। लेकिन मुद्दा यह है कि इन सूचकांकों के होने से आप जिस डेटाबेस संचालन का वर्णन कर रहे हैं वह बहुत तेज़ हो जाता है।




  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. कुप्पी-sqlalchemy mysql-अजगर स्थापित नहीं कर सकता

  3. MySQL प्रत्येक ज़िप कोड में सबसे महंगा खोज रहा है

  4. एक MySQL डेटाबेस से यादृच्छिक डेटा प्राप्त करना लेकिन डेटा दोहराना नहीं

  5. क्या पीडीओ के साथ एक MySQL तैयार कथन को बंद करने के लिए कोई कार्य है?