[Typo3-dev] RFC: TYPO3, Kickstarter and M-M database relations

Peter Niederlag niederlag at ikd01.de
Thu Oct 6 13:27:16 CEST 2005


Hi,

-----------------------------------------------------------------
I'd like to get your opinions on the default handling of M-M-relations
in TYPO3 and extensions created by the Kickstarter.
-----------------------------------------------------------------

Currently the Kickstarter uses 'commalist of values' to realize
M-M-relations on database-tables by default.

In my opinion 'commalist of values' might be easier to handle for
novices in PHP- and SQL-development but tend to lead to somewhat bad
application-design.

------------------------------------------------------------------
Explanations
------------------------------------------------------------------
'commalist of values' makes some operations truely difficult or
expensive. For example "give me all users that belong to usergroup 234"
can only be done by some expensive and error-prone "LIKE ..."
SQL-construct or PHP-operation on the Result-Set.

Also M-M-relations as 'commalist of values' does prevent the usage of
Object-Relational-Toolkits such as Propel (PHP-based,
http://propel.phpdb.org/trac/) or Hibernate (Java-based) from being a
choice for data-handling or at least make it very, very difficult.

---------------------
My suggestions:
---------------------

 * Switch to a true M-M-relation by default in the Kickstarter as soon
as possible, leaving 'commalist of values a user-choice with an
explanatory "warning"

 * Use true M-M relations for any new stuff possibly introduced in the
TYPO3-core

 * Cleaning up of any 'commalist of values' in TYPO3-core for Version 5.0


Plz let me know what you think.

Thx and cheers,
Peter
<happy because he just turned in his "diploma"-thesis on "extending CMY
TYPO3 with flexible Workflow Managment" two days ago />
-- 
Peter Niederlag
http://www.niekom.de * TYPO3 & EDV Dienstleistungen *
http://www.typo3partner.net * professional services network *




More information about the TYPO3-dev mailing list