Hallo,
ich will meine eigene Extension schreiben und verwende dazu den Kickstarter. Dabei hab ich folgendes Problem:
Wie bilde ich am einfachsten meine benötigte Datenbankstruktur in Typo3 ab?
Ich habe alle verschiedenen Fremdkeys verteilt und weiß nicht wie ich die verknüpfen soll. Ich erklär mal kurz einen Ausschnitt:
Tabelle TAN:
TAN-ID (Primärschlüssel)
EVA-ID (Fremdschlüssel)
Token
Used
...
Tabelle Evaluation:
EVA-ID (Primärschlüssel)
StartDate
EndDate
...
Tabelle Question/Evaluation:
EVA-ID (Fremdschlüssel)
Q-ID (Fremdschlüssel)
Tabelle Question:
Q-ID (Primärschlüssel)
Question
...
Wie ihr seht hab ich einmal eine 1:N Beziehung bei TAN - Evaluation und einmal eine Zuordnungstabelle (N:M) von Evaluation zu Question.
Ich hoff ihr könnt mir bei meinem kleinen Anfängerproblem weiterhelfen, denn eine gute Evaluationsextension gibt es leider noch nicht in Typo3.
ich würde einfach ein bisschen rumspielen.
Wenn ich das richtig gelesen und verstanden habe, machst du 3 vollwertige eigene Tabellen, welche jeweils 1x einen Wert einer anderen Tabelle enthalten - deinen FK.
Zuletzt machst du diese n:m tabelle welche aus den beiden Tabellen EVA und Q-ID besteht. N Einträge aus EVA sowie M Einträge aus Q können darin enthalten sein...
zumindest in der Theorie 😉
Naja, rumprobiert hab ich schon. Ich hab auch ein Ergebnis, aber ob ich das Ganze richtig gemacht hab liegt wohl in den Sternen #paralyzed#
Die Anordnung der Sterne solltest Du aber wissen...
D.h.: im Laufe des Betriebes deiner Ext. also wenn dann mal ein paar (Test- ) Einträge stattgefunden haben, solltest Du sehen, ob Deine Daten in die entsprechenden Tabellen richtig geschrieben worden sind o. nicht.
Prinzipiell kannst Du Dich auch an tt-news halten, verwendet mit glaub Categorien auch eine n:m Tabelle. N Kategorien in M Nachrichten und vis a verse.
Ansonsten würde hier glaub ich schon ein richtiges ERM benötigt.. Wobei andererseits gibt es glaube ich in mysql keine F- und P-Keys
Du erstellst 3 Tabellen im Kickstarter. Die 4. Tabelle (Tabelle Question/Evaluation) erstellt der Kickstarter von alleine.
Dafür musst du entweder bei Tabelle Evaluation oder bei Tabelle Question eine n:m-Relation hinzufügen.
Ok danke, das ist gut zu wissen. Ich werde das einfach mal probieren und Bescheid geben ob das mit Testdatensätzen funktioniert oder nicht.
Bisher bin ich noch nicht zu dem Part gekommen, bei dem ich M:N Datensätze anlege. Ich scheitere noch an einem eigentlich recht trivialen Problem. Und zwar hab ich eine 1:N Beziehung und die hab ich einfach so erstellt indem ich ein weiteres Feld in der Tabelle angelegt habe in dem die uid der entsprechenden anderen Tabelle drin ist.
Kurzes Beispiel:
Tabelle Name Tabelle Nachname
Hans ---> Wurst
---> Dampf
---> im Glück
Peter ---> im Hof
In der Nachname Tabelle speicher ich in einem extra Feld nun die UID von beipielsweise dem Hans. Mein Problem nun: Was muss ich da jetzt abfragen damit ich die UID des gerade angelegten Hans bekommen?
$insertArray = array(
'uid' => ???,
...
);
$insertArray2 = array(
'name' => 'uid???'
...
);
Ich hoff ich hab mich klar ausgedrückt 😃