[TYPO3-UG Dutch] foreign_table_where met IN statement (tca.php)

Jigal van Hemert jigal at xs4all.nl
Wed Apr 29 23:46:00 CEST 2009


>>Dit werkte even op de lachspieren: een relatie (tussen gegevens) bouwen,
>>daar zijn relationele databases niet sterk in :-D
>
> Relationele databases zijn niet in staat om veel-veel-relaties aan te
> leggen tussen twee tabellen. Daar is tussenkomst van de db-ontwerper voor
> nodig, en dat noem ik m.i. terecht 'niet sterk'. Als dat stof is om te
> lachen, dan ben ik blij dat ik je avond heb opgevrolijkt.

Niet persoonlijk opvatten, maar het was meer de combinatie van 'relatie'
en 'relationele databases' die de lachspieren prikkelde.

Ik kan alleen over MySQL oordelen en daar zitten veel-op-veel relaties
niet vanzelf in. De ervaring leert ook dat allerlei automatische
oplossingen vaak geen optimaal resultaat geven. MySQL levert wel een set
mooi gereedschap waarmee een slimme database designer prachtige
oplossingen kan ontwerpen.

> Subselects (zelfs gecorreleerde) zijn echt geen probleem meer voor recente
> versies van MySQL, alleen behandelt TYPO3 de database als een platte bak
> opslagruimte en meer niet en dat stamt dan weer uit de tijd van MySQL
> 3.23, toen het ook gewoon een platte tabellenbak was.

Sub-queries zijn zelden nodig en hebben als groot nadeel dat die geen
index kennen. Met grote datasets is de snelheid een mogelijk probleem.

De reden dat TYPO3 "voorzichtig" omgaat met MySQL is dat de core
developers het liefst geen MySQL-specifieke zaken gebruiken. Met een paar
aanpassingen schijnt het ook nog steeds te lukken om de core op
bijvoorbeeld Oracle te laten draaien.
Je hebt misschien wel eens query's in TYPO3 gezien met rare constructies
als  WHERE fe_groups LIKE '25,%' OR fe_groups LIKE '%,25,%' OR fe_groups
LIKE '%,25', etc.
De reden dat er hier geen FIND_IN_SET() wordt gebruikt ligt mede in de
wens om geen MySQL specifieke functies toe te passen.

Hopelijk is het TYPO3 v.5 team er wel in geslaagd om een betere abstractie
laag te maken voor de database, zodat er met merk-specifieke services
ondersteuning geboden kan worden aan andere databases.
In het licht van de onzekerheden die de recente overname van Sun door
Oracle met zich meebrengt zou dat geen onverstandige keuze zijn...

-- 
Jigal van Hemert.



More information about the TYPO3-UG-Dutch mailing list