ORM 用のモデルを作成するには、助けが必要です。
私は Pyramid と SQLAlchemy を使用して Web アプリケーションを設計しようとしてきましたが、これは個人的な学習経験としてだけでなく、私が働いている会社のために開発したい Web アプリケーションの小さなコンポーネントでもあります。
このアプリケーションがどのようなものになるかについて少し背景を説明します (建設分野)。
これは、見積もり担当者が更新できる入札スケジュールとして使用されます。フロント オフィスの秘書が、誰がどの仕事に取り組んでいるか、どの請負業者がその仕事を見積もっているかを確認できるようにします。
私は3つのモデルを設計しており、それらは次のようになります。
class JobListing(Base):
__tablename__ = 'joblist'
id = Column(Integer, primary_key=True)
jobname = Column(String(80), unique=True)
biddate = Column(DateTime)
def __init__(self, jobname, biddate):
self.jobname = jobname
self.biddate = biddate
class Contractors(Base):
__tablename__ = 'contractors'
id = Column(Integer, primary_key=True)
name = Column(String(80), unique=True)
address = Column(String(255))
phone = Column(String(11))
fax = Column(String(11))
def __init__(self, name, address, phone, fax):
self.name = name
self.address = address
self.phone = phone
self.fax = fax
class BiddingList(Base):
__tablename__ = 'biddinglist'
id = Column(Integer, primary_key=True)
job_id = Column(Integer, ForeignKey("joblist.id"))
job = relationship("JobListing", backref=backref("joblist", order_by=id))
contractor_id = Column(Integer, ForeignKey("contractors.id"))
contractors = relationship("Contractors", backref=backref("contractors", order_by=id))
joblisting には実際のジョブ情報が含まれています。ジョブ名と入札日だけで十分です。
請負業者には、入札する実際の請負業者に固有の情報が含まれています。電話、ファックスなどの標準的な情報のみです。
入札リストには、どのように整理すればよいかわからない情報が含まれます。これは正しい方法だと思いますが、請負業者をジョブIDに接続するだけです。
請負業者は、ジョブごとに 1 つしかリストできませんが、ジョブには多数の請負業者を含めることができます。
私の質問は、このデザインでこれに正しい方法でアプローチしていますか、それとも完全に左翼手ではないですか? 最初から正しい方法で取り組みたいと思っているので、しっかりとした基盤を築いています。