[TYPO3-core] IRRE implementation bugs
Ingmar Schlecht
ingmar at typo3.org
Sun Oct 21 23:21:54 CEST 2007
Hi Kasper,
Kasper Skårhøj wrote:
> It seems that IRRE is made only for M-1 relationships (many children to
> one parent). And I didn't realize that the shown records was limited to
> those pointing to the parent as you describe.
Well, the foreign_field saving method is just one of the possible saving
methods. There's the option to save the relation in a separate relation
table (MM table) or in a comma-separated string field as well, which
would allow for M-M relationships. I just mentioned it as one saving
method that wouldn't support a multi-parent approach, so at least for
this method versioning would have to automatically create versions of
the children as well or otherwise loose the relationship.
> And I don't dispute that
> it is logical for a user that copying the parent should copy the
> children. However, copies are often made by users as templates for new
> objects. In such a case it is not given that a user wants all children
> to be replicated as well if they are interested in starting a new parent
> based on another ones base information.
It's the same with pages, isn't it? If you uses a page as a
copy-template, the records on that page are copied as well.
> About IRRE being purely M-1 is not logical for me. The full potential is
> if it can handle M-M. For me many M-M situations warrants that I can
> edit the children directly in the parent form, even if they are children
> of other parents. That is a question of convenience.
I find it inconsistent usability-wise if IRRE children are sometimes
copied along and sometimes not; changes in children sometimes affect
other parent's children and sometimes not (same goes for moving,
deleting and versioning) and at the same time found that the "treat as
one object" approach is the one that is more often to be found and
therfore the one to go for.
But there's something called combination view (useCombination=1) in IRRE
which makes it possible to actually edit MM relations. The trick is that
the 1:n IRRE relationship actually goes to an intermediate table (the MM
table) which has a full TCA configuration and connects the two other
tables. If one of the fields of that intermediate table is a DB relation
field (group or select) then IRRE offers to edit the record that
relation field points to directly inside of the form as well, with big
red warning labels so you know you're editing something that affects
other places as well.
Have a look at the attached screenshot I prepared for you :)
The form in the screenshot actually affects three (!) database records:
The parent, intermediate and child record.
What's pretty handy is that even the intermediate table can have
editable fields (unlike traditional MM tables used for e.g. group fields).
> "Could you name one real world example where you would like the IRRE
>> interface but not the "unique parenthood" principle?"
>
> Lets take parent/children literally:
> We have a mother and a father. They have a common child. There are M-M
> relations (2) between the child and mother/father. I would like the
> child record to show for both the mother and the father when I edit
> them. If the child changes name the day she gets married, I would be
> able to enter both the father and mother record can change the name there.
Hmm... OK... Valid example :)
> ah... whatever. The point is that you can never know how people want to
> use your technology and IRRE shouldn't impose judgements on that either.
> Of course you should allow people to copy the whole parent-tree in one
> go, but it shouldn't be a hard coded constraint I believe.
I could live with that (would need someone to implement it though).
Regarding the question of versioning though we have to find a solution
for the current 1:n approach, regardless of whether M:M will be
supported as well at some point.
cheers
Ingmar
-------------- next part --------------
A non-text attachment was scrubbed...
Name: irre-screen.png
Type: image/png
Size: 11007 bytes
Desc: not available
Url : http://lists.netfielders.de/pipermail/typo3-team-core/attachments/20071021/71a99b95/attachment-0001.png
More information about the TYPO3-team-core
mailing list