Aşağıdaki nesneleri ve ilişkileri tanımladım. Bu aslında oldukça basit bir durumdur ve inhalasyon ve enjeksiyon anestezisinin neden iki farklı sınıf tarafından tanımlanacağına inandığımı göstermek için tüm bu alanları sağlıyorum.çoklu/bölünmüş sınıf ilişkileri
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")
Ben, ancak, herhangi bir Operation
amacı TwoStepInjectionAnesthesia
nesne veya bir nesne InhalationAnesthesia
ya işaret edebilir şekilde Operation
sınıfının anestezik özelliği tanımlamak istiyoruz.
Bunu nasıl yapabilirim?
Bu nedenle, "Operation.anesthesia" altındaki "InhalationAnesthesia" ve "TwoStepInjectionAnesthesia" nesnelerine bakabilmem gerekir. Operation.anesthesia = [TwoStepInjectionAnesthesia (..), InhalationAnesthesia (..), Inhalationanesthesia (..)] 'yı kullanır mı? – TheChymera
@ TheChymera Evet ve Evet. Sağlanan örnekte, bir "İşlem" örneği yalnızca bir "Anestezi" nesnesine referans gösterecektir. Listeye ihtiyacınız varsa, kodu biraz değiştirmelisiniz. –
Bir şey daha, yukarıdaki kurulumu kullanmanın avantajı nedir (python sonunda biraz daha iyi organize edilmekten başka)? Oluşturulacak gerçek sql tablosu, yalnızca belirli uyum sağlayıcılara sahip satırlar için belirli sütun türlerini içerir mi? (böylece disk alanı kaydediliyor mu?) – TheChymera