现在我将相同数据的类加倍。第一个是Bill
和Expense
类,在本地用于在程序中交换数据。然后,我有Bill_Table
和Expense_Table
,用于在程序和数据库之间交换数据。当我只想要其中一个时,这会使我的程序变得不必要。
Bill有一个成员变量,它是一个费用列表,如下所示:
class Bill:
vendor = None # type: str
expenses = None # type: list[Expense]
# plenty more variables here
def __init__(self, vendor=None,):
self.vendor = vendor
self.expenses = list()
class Expense:
account = None # type: str
amount = None # type: int
# etc...
我的Bill_Table
和Expense_Table
设置完全相同。我使用一些函数将Bill
转换为Bill_table
,或将Expense
转换为Expense_Table
,反之亦然。
from sqlalchemy import Column, Integer, ForeignKey
from sqlalchemy.ext.declarative import declarative_base
Base = declarative_base()
class Bill_Table(Base):
__tablename__ = 'bills'
id = Column(Integer, primary_key=True)
expenses = relationship("Expense_Table")
# etc...
class Expense_Table(Base):
__tablename__ = 'expenses'
id = Column(Integer, primary_key=True)
bill_id = Column(Integer, ForeignKey('bills.id'))
# etc...
如何在不连接数据库的情况下将一些Expense_Table
对象映射到Bill_Table
对象?所以我可以拥有相同的功能,但是当我将Bill_Table
插入数据库时,它也会用它导入它的Expense_Table
个对象吗?