我有一个基本的数据模型,我想在MySQL中实现。我将使用mysqldb和SQLalchemy来处理数据部分,从一些XML中获取一些数据。
我不确定如何实现我想做的事情,我想知道是否有人能指出我正确的方向。
我有几张表,每张表都包含一部分数据。
Table 1 - recordTitle, recordID, recordDate
Table 2 - recordProp1, recordProp2, recordProp3
Table 3 - recordPropA, recordPropB, recordPropC
所有表在它们自己的空间中都是唯一的,但T1可以有许多T2和T3,而T2 / T3可以属于许多T1。合理?
我认为解决这个问题的方法是获得第4张表: -
表4 - T1ref,T2ref,T3ref
并在T1-3中有一个名为TnRef的新colunm,它基本上是该表的主键。
答案 0 :(得分:2)
对于你所描述的多对多关系,是的,我认为有一个第四个表连接T1记录与T2(s)和T3(s)是有意义的。我想你会想要为T2和T3添加一个关键列,以使T4能够正确存储链接。
我假设您的意思是T2和T3将会扩展,并且您的应用程序将在(例如)将{recordProp1 = someval,recordProp2 = someotherval}添加到T1中的给定记录时发出请求。如果是,那么是的,你想先在T2上进行查找,然后根据T1和T2的键将其插入到T4中。
我认为ORM绝对是正确的工具。当然,您首先要确保MySQL中的所有外键关系都是正确的。但是SqlAlchemy可以处理多对多关系。看看:http://docs.sqlalchemy.org/en/latest/orm/relationships.html#many-to-many