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

Jigal van Hemert jigal at xs4all.nl
Wed Apr 29 19:28:17 CEST 2009


Bas schreef:

> Het lijkt erop dat je een veel-op-veel-relatie aan het bouwen bent, en
> daar zijn relationele databases niet heel sterk in.

Dit werkte even op de lachspieren: een relatie (tussen gegevens) bouwen,
daar zijn relationele databases niet sterk in :-D

Relationele databases kunnen prima relaties leggen en onderhouden. Het
probleem zit 'm meestal in de programmeur die iets bedenkt.

Een veld met kommagescheiden gegevens is niet optimaal voor een relatie
als daarop geselecteerd of met grote hoeveelheden op verwerkt moet worden.
Er kan niet gebruik gemaakt worden van een index en dus zal de database
een "full table search" moeten doen.. traag.

Een IN () functie gebruik ik persoonlijk alleen als er
<veld> IN (<constante>)
staat. Dan is het behoorlijk snel.

Voor veel-op-veel relaties heeft TYPO3 een mm-table. In het kort is dat
een tabel met in elk record de uid's van de twee records in andere
tabellen die gekoppeld moeten worden.
Dit is goed te indexeren, prachtig te gebruiken met JOIN's en het werkt
daardoor ook snel.
Het enige nadeel is dat je iets meer van JOIN statements moet weten om de
gewenste data op te halen. Maar ja, iets erbij leren kunnen we allemaal
:-)

Overigens maakt de kickstarter meestal iets dat werkt, maar het hoeft niet
optimaal te zijn. Van een veld "dat alleen weergegeven wordt" maakt de
kickstarter geloof ik een TINYTEXT. Je bent natuurlijk vrij om dat even te
veranderen. De kickstarter is voornamelijk een hulpje om je snel op weg te
helpen (vandaar de naam), maar er is meestal behoorlijk wat werk nodig om
alles aan te passen.

Als je fanatiek extensies wilt bouwen is Dmitry Dulepov's boek daarover
echt een aanrader. Ook dat boek is niet compleet en er zitten her en der
kleine foutjes in, maar het legt veel uit over hoe je op de TYPO3 (versie
4) manier een extensie bouwt.


-- 
Jigal van Hemert.



More information about the TYPO3-UG-Dutch mailing list