推动:没有交叉的多对多关系

时间:2014-01-27 09:57:02

标签: php mysql sql orm propel

我最近从我的学校得到了一份作业,我必须为ORM创建一个Propel Schema。 这不是一个真正的问题,但其中一个要求是将这些表中的两个与多对多关系连接起来。

通常情况下,您可以使用crosstable(保存两个表中的属性),但我们的老师说这也是可能的,没有这样的交叉(甚至是一个要求)。

如何在Propel中创建这样的人?

问题中的ERD:

http://files.f-o-g.eu/b8f8a9

(我被困在VIP< - > Einladung)

到目前为止,我有这个:

<?xml version="1.0" encoding="UTF-8"?>
<database name="orm1" defaultIdMethod="native">
    <table name="einladung" phpName="Einladung">
            <column name="nummer" type="INTEGER" primaryKey="true" autoIncrement="true" />
            <column name="fbuffet" type="BOOLEAN" />
            <column name="splatz" type="INTEGER" />
    </table>
    <table name="sorganisation" phpName="SpendenOrganisation">
            <column name="name" type="VARCHAR" size="255" primaryKey="true" required="true" />
            <column name="adresse" type="VARCHAR" size="255" />
    </table>
    <table name="wveranstaltung" phpName="WVeranstaltung">
            <column name="titel" type="VARCHAR" size="255" primaryKey="true" required="true" />
            <column name="datum" type="DATE" required="true" />
            <column name="ort" type="VARCHAR" size="255"/>

    </table>
    <table name="vip" phpName="Vip">
            <column name="id" type="INTEGER" primaryKey="true" autoIncrement="true" />
            <column name="vname" type="VARCHAR" size="255" required="true" />
            <column name="nname" type="VARCHAR" size="255" required="true" />
    </table>
</database>

任何人都有线索?

1 个答案:

答案 0 :(得分:0)

如果没有交叉表,则无法创建m-to-m关系。

我猜你的VIP -> Einladung关系是错误的。它应该是一对一的关系。