में एकाधिक/विभाजित वर्ग संघों में मेरे पास निम्न ऑब्जेक्ट्स और संबंध परिभाषित हैं। यह वास्तव में एक साधारण मामला है, और मैं केवल उन सभी क्षेत्रों को यह दिखाने के लिए प्रदान कर रहा हूं कि मुझे क्यों लगता है कि इनहेलेशन और इंजेक्शन संज्ञाहरण को दो अलग-अलग वर्गों द्वारा परिभाषित किया जाना चाहिए।sqlalchemy
class InhalationAnesthesia(Base):
__tablename__ = "inhalation_anesthesias"
id = Column(Integer, primary_key=True)
anesthetic = Column(String)
concentration = Column(Float)
concentration_unit = Column(String)
duration = Column(Float)
duration_unit = Column(String)
class TwoStepInjectionAnesthesia(Base):
__tablename__ = "twostep_injection_anesthesias"
id = Column(Integer, primary_key=True)
anesthetic = Column(String)
solution_concentration = Column(Float)
solution_concentration_unit = Column(String)
primary_dose = Column(Float)
primary_rate = Column(Float)
primary_rate_unit = Column(String)
secondary_rate = Column(Float)
secondary_rate_unit = Column(String)
class Operation(Base):
__tablename__ = "operations"
id = Column(Integer, primary_key=True)
anesthesia_id = Column(Integer, ForeignKey('inhalation_anesthesias.id'))
anesthesia = relationship("InhalationAnesthesia", backref="used_in_operations")
मैं, हालांकि, इस तरह से है कि किसी भी Operation
वस्तु के लिए या तो एक TwoStepInjectionAnesthesia
वस्तु या एक InhalationAnesthesia
वस्तु इंगित कर सकते हैं में Operation
वर्ग के संवेदनाहारी विशेषता परिभाषित करना चाहते हैं।
मैं यह कैसे कर सकता हूं?
तो इस सेट-अप का उपयोग करके मैं 'ऑपरेशन.एनेस्थेसिया' के तहत 'इनहेलेशन एनेस्थेसिया' और 'टूस्टेप इंजेक्शनएनेस्थेसिया' दोनों वस्तुओं को संदर्भित करने में सक्षम होना चाहिए? 'ऑपरेशन.एनेस्थेसिया = [टूस्टेप इंजेक्शनएनेस्थेसिया (..), इनहेलेशन एनेस्थेसिया (..), इनहेलेशनेशनस्थेसिया (..)] का उपयोग करना होगा 'कुछ भी गड़बड़ है? – TheChymera
@TheChymera हां और हां। उदाहरण में एक 'ऑपरेशन' उदाहरण प्रदान किया जाएगा केवल एक 'संज्ञाहरण' वस्तु का संदर्भ देगा। यदि आपको इसकी सूची होने की आवश्यकता है तो आपको कोड को थोड़ा सा बदलना चाहिए। –
एक और बात, उपरोक्त सेट-अप का उपयोग करने का क्या फायदा है (पायथन अंत में थोड़ा बेहतर व्यवस्थित होने के अलावा)? क्या उत्पन्न होने वाली वास्तविक एसक्यूएल तालिका में केवल कुछ डिस्कमैनेटर के साथ पंक्तियों के लिए कुछ स्तंभ प्रकार होते हैं? (जिससे डिस्क स्पेस बचाया जा सकता है?) – TheChymera