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

रेल बहु-किरायेदार वास्तुकला, एकाधिक किरायेदारों तक पहुंच की गुंजाइश

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

मैंने 'मल्टीटेनेंसी विद स्कोप' रेलकास्ट के साथ शुरुआत की थी

http://railscasts.com/episodes/388-multitenancy-with-scopes ए>

फिर इस गाइड का उपयोग करके वसीयत उप डोमेन के साथ बहु-किरायेदारी कार्य करने पर ध्यान दिया:

https ://github.com/plataformatec/devise/wiki/How-To:--Isolate-users-to-log-into-a-single-subdomain

लेकिन मैंने इसे अंकित मूल्य पर नहीं लिया; मैं वास्तव में यह समझने के लिए तैयार हूं कि इस तरह से कैसे काम किया जाता है।

एक बार जब मेरे पास वह सब हो गया, तो मैं बहु-किरायेदार रत्न के लिए तैयार था:

https://github.com/wireframe/multitenant

लेकिन मैं यहीं नहीं रुका। मल्टीटेनेंट मणि के लिए आवश्यक है कि आप Multitenant.with_tenant कहें जब भी आप चीजों को उचित रूप से स्कोप करना चाहते हैं, इसलिए मैंने एक TenantController बनाया जो इस तरह दिखता है:

  around_filter :scope_current_tenant

  def scope_current_tenant
    begin
      Firm.current = Firm.find_by_subdomain!(request.subdomain)
    rescue
      raise ActionController::RoutingError.new('Not Found')
    end

    Multitenant.with_tenant Firm.current do
      yield
    end

    ensure
      Firm.current = nil
    end
  end

और फिर किसी भी नियंत्रक को मैं एप्लिकेशन कंट्रोलर की बजाय किरायेदार नियंत्रक से किरायेदार विरासत से प्राप्त करना चाहता हूं। इस तरह मुझे नियंत्रक के विवरण में कुछ भी याद नहीं रखना पड़ा, यह 'बस काम किया'। डेवलपर्स को केवल यही सोचना था कि 'क्या यह एक नियंत्रक है जो टैनेंट डेटा को संभाल रहा है?'

हालांकि यह अभी भी कुछ चीजों को सही तरीके से करने वाले डेवलपर्स पर निर्भर करता है (मॉडल में 'acts_as_multitenant' कहते हुए, सही नियंत्रक से विरासत में मिला है, यह व्यवहार में वास्तव में अच्छी तरह से काम करता है।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. CSV डेटा फ़ाइलों से MySQL बल्क इंसर्ट

  2. SQL - भिन्न दिनांक मान के साथ दो तालिकाओं को संयोजित करें

  3. php mysql गैलरी में एकाधिक छवि फ़ाइलें अपलोड करना

  4. JOIN और GROUP BY के प्रदर्शन को बेहतर बनाने के लिए कौन से इंडेक्स हैं?

  5. MySQL EXPLAIN के आउटपुट की व्याख्या कैसे करें?