2014-01-27 1 views
0

Я недавно получил задание от своей школы, где мне нужно создать схему Propel для ORM. Это не проблема, но одним из требований является подключение двух из этих таблиц с отношением «многие ко многим».Propel: отношения многие-ко-многим без 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> 

Любой получил ключ ?

+0

Пожелание было по-английски. Я даже не могу найти общую связь между этими таблицами! –

+0

Для перевода: левая сторона (VIP) (vorname = firstname, nachname = lastname); правая сторона: Einladung (приглашение) (freies buffet = бесплатный шведский стол, sitzplatz = место, nummer = число); между (bekommt = get) (потратить betrag = сумма пожертвования) – user1818486

ответ

0

Невозможно создать отношение m-to-m без перекрестного стола.

Я думаю, ваше отношение VIP -> Einladung - это просто неправильно. Вероятно, это должно быть отношение 1 к-n.

+0

Ну, отношения правильные (это спецификация, которую мы получили). В любом случае, как я уже догадался, это невозможно без такого перекрестного стола. Собираюсь принять ваш ответ. – user1818486

Смежные вопросы