Seite 1 von 2
365 threads und je 2 posts - wie sind die sortiert in der db
Verfasst: 05.05.2003 21:04
von hinault
hallo ,
das ist keine scherzfrage. ich wollte mal nachfragen wie die Sortiert sind in den DREI
relevanten Tabellen der Datenbank, also in
topic
posts
post_text
es geht um das Verständniss der Logig, Also gegeben sind : 365 threads und je 2 posts - wie sind die sortiert in der db.
ich brauch die Daten zum verständnis der Datenbank von phpbb2. Wahrscheinlich muss man nun noch dazusagen wie die Postings eingegangen sind. Also das wird vielleicht auch noch wichtig sein!
Also um das Ganze zu verstehen, hier eine FRAGE: Nehmen wir einen Fall eins an:
Sagen wir dass jeder neue Topic an je einem neuen Tag angelegt wurde! und weiterhin;
Jeder neue auf ein frisch angelegtes topic angwortender Post kommt ebenso an je einem neuen tag;
Das wird also in der Post-Tabelle dann wohl so aussehen dass sich ein Topic-Post mit einem antwortenden Post jeweis abwechselt oder !?!? Darin spiegelt sich wahrscheinlich auch eine chronologische Reihenfolge wieder!
Um es ganz zu verstehen mach ich noch ein zweites Beispiel;
Nehmen wir an alle 365 Startpostings, also die Topic-Postings mit den startenden Mails kommen nicht an 365 T agen sondern an einem einzigen Tag: Die darauf ( auf die 365 Topic-Postings) jeweils Antwortenden Postings kommen an den folgenden 365 Tagen.
Dann dürfte die Tabelle Posts sehr anders sortiert sein; in diesem Falle dürfte diese Tabelle
erst die Topic postings speichern und danach kommen dann die darauf antwortenden postings.
Ich glaube dass man das so sagen kann. Im Grunde steckt in der Post - Tabelle eine Reihenfolge, nämlich eine chronologische Reihenfolge drinne!
Neben dieser Reihenfolg gibt es natürllich noch eine zweite Ordnungsstruktur - Diese Ordnungsstruktur bezieht sich auf die Postings und ihre Zurodung zu den jeweiligen Threads.
Aber das mit der Zeitlichen Reihenfolge gilt auf jeden Fall , oder
Stimmt das denn!?!
vielen dank für eure hilfe!
Hinault
Verfasst: 05.05.2003 22:02
von PhilippK
Die Sortierung der Datensätze in der Datenbank ist rein interne Aufgabe der Datenbank und hat mit dem Forum nichts zu tun. Ist übrigens einer der wesentlichen Eigenschaften von Relationen (bzw. Relationalen Datenbanken):
Die Reihenfolge der n-Tupel einer Relation ist ohne Belang, d.h. die Folge bzw. Ordnung der Zeilen spielt keine Rolle
Gruß, Philipp
Verfasst: 06.05.2003 02:31
von Acid
Wie Du richtig erkannt hast, stehen diese drei Tabellen in einem Zusammenhang.. was das Schreiben von Themen/Beiträgen angeht.
Wobei
topics in Verbindung mit
posts steht und
posts wiederum mit
posts_text (so das dann halt auch posts_text sich auf topics bezieht

)... verbunden über die ID.
Wenn das erste Topic geschrieben wird, wird ´n Eintrag in allen drei Tabellen gemacht. In
topics gibt´s den Eintrag mit der topic_id 1 und zusätzlich in
posts mit der topic_id 1 ....und in
posts gibt´s dann zusätzlich den Eintrag post_id 1, ebenso in
posts_text (was also diese beiden Tabellen verbindet). Neues Thema neue topic_id Einträge in topics/posts usw. ...gibt´s jedoch neue Antworten auf Thema 1 (id 1) dann gibt´s nur neuen post_id´s in
posts und
posts_text..
hmm ..wo war ich stehen geblieben.. ich glaub hier..
Die Reihenfolge der n-Tupel einer Relation ist ohne Belang, d.h. die Folge bzw. Ordnung der Zeilen spielt keine Rolle

Verfasst: 06.05.2003 14:08
von hinault - der Rennfahrer
hallo Acid und Phillipk,
vielen Dank für die Antworten
Acid hat geschrieben:Wie Du richtig erkannt hast, stehen diese drei Tabellen in einem Zusammenhang.. was das Schreiben von Themen/Beiträgen angeht. Wobei
topics in Verbindung mit
posts steht und
posts wiederum mit
posts_text (so das dann halt auch posts_text sich auf topics bezieht

)... verbunden über die ID.
Wenn das erste Topic geschrieben wird, wird ´n Eintrag in allen drei Tabellen gemacht. In
topics gibt´s den Eintrag mit der topic_id 1 und zusätzlich in
posts mit der topic_id 1 ....und in
posts gibt´s dann zusätzlich den Eintrag post_id 1, ebenso in
posts_text (was also diese beiden Tabellen verbindet). Neues Thema neue topic_id Einträge in topics/posts usw. ...gibt´s jedoch neue Antworten auf Thema 1 (id 1) dann gibt´s nur neuen post_id´s in
posts und
posts_text..
hmm ..wo war ich stehen geblieben.. ich glaub hier..
Die Reihenfolge der n-Tupel einer Relation ist ohne Belang, d.h. die Folge bzw. Ordnung der Zeilen spielt keine Rolle

nochmals - vielen Dank für eure Antworten;
Die Antworten geben Licht ins Dunkel; ich fragte deshalb, weil ich von XForum her komme und das besondere Problem habe dass ich nun die Forendaten migrieren will nach der phpBB-Datenbank! Gut - soweit so gut; Nun ist mein besonderes Problem folgendes;
die XForen-DB ist anders aufgebaut; sie kennt Threads und Postings, mehr nicht:
- Threads: - (die jeweils ersten Postings eines Threads) - dort sind die initial-Postings drinne! also X
- Postings: diese Postings sind alle jene die auf die X antworten
gut das ist in phpBB anders geordent und irgendwie auch logischer. Nun ist meine Frage die: Kann ich die Daten auch irgendwie übertragen so dass ich alle Threads aus dem XForum nehme und ein (!!!)deutig in die topic-Tabelle (und post-Tabelle) von phpBB 2 übertrage!?
Anmerkung; Das Skript von Ashe läuft zwar durch - aber es produziert sehr merkwuerdige Daten! ich glaube dass diese Daten nicht mehr stimmen!!
Deshalb nun meine Frage an Euch - wenn ich tausend Threads aus dem XForum habe, dann sollte ich doch vielleicht auch in der Lage sein diese so einzuspielen dass die Zuordnungen richtig sind, oder!
Die Kernfrage ist die - Wie kann man die Threads - also die Leitpostings aus dem Xforum so übertragen dass alles logisch ist - (und bleibt) Wenn ich euch richtig verstanden habe, dann _müßte es GEHEN!!!
freue mich auf Eure Antworten!!
Hinault.
Verfasst: 06.05.2003 14:27
von Acid
hinault - der Rennfahrer hat geschrieben:
die XForen-DB ist anders aufgebaut; sie kennt Threads und Postings, mehr nicht:
- Threads: - (die jeweils ersten Postings eines Threads) - dort sind die initial-Postings drinne! also X
- Postings: diese Postings sind alle jene die auf die X antworten
gut das ist in phpBB anders geordent und irgendwie auch logischer.
Naja, eigentlich ist es beim phpBB genauso.
topics sind die ersten Beiträge,
posts die Antworten... nur der Unterschied zum XForum ist beim phpBB halt, das der eigentliche Text der Beiträge/Themen in der posts_text gespeichert wird.
Verfasst: 06.05.2003 17:15
von PhilippK
Acid,
ich glaube der Unterschied besteht darin, dass bei XForen-DB der erste Beitrag nicht in der Beitragstabelle sondern nur in der Thementabelle gespeichert wird. Also bei 'nem Thema mit 4 Antworten sind in der Beitragstabelle nur 4 und nicht 5 Einträge wie bei phpBB.
Zur Frage: Konvertieren kann man's vermutlich schon. Nur dürfte es etwas Arbeit sein. Bist du fit mit PHP und SQL?
Gruß, Philipp
Verfasst: 06.05.2003 17:42
von Hinault der Rennfahrer
Hallo Phillip hallo Acid,
danke für die Antworten!
PhilippK hat geschrieben:Acid,
ich glaube der Unterschied besteht darin, dass bei XForen-DB der erste Beitrag nicht in der Beitragstabelle sondern nur in der Thementabelle gespeichert wird. Also bei 'nem Thema mit 4 Antworten sind in der Beitragstabelle nur 4 und nicht 5 Einträge wie bei phpBB.
Zur Frage: Konvertieren kann man's vermutlich schon. Nur dürfte es etwas Arbeit sein. Bist du fit mit PHP und SQL?
Gruß, Philipp
also,
ich sehs auch so - die Unterschiede mit dem X-1 in der Beitragstabelle machen aber bei der Konversion echt zu schaffen. Wäre dies eben alles wie bei phpbb2 dann wäre der Übertrag der Daten ein Leichtes.
Übrigens gibt es ein Konverterskript von ashe
http://perso.wanadoo.fr/ashe/phpBB2/ (das kennt ihr vermutlich auch schon! )
Aber ich hatte damit noch nicht so viel Glück. Die Sache ist die. Der Vorgang der Ausführung des Skripts läuft eine halbe Stunde (lokal ) nachdem ich die Skript-Time Outs alle abgeschaltet habe und den Apache in seiner Execution-Zeit bis zum Anschlag gestellt habe. Warum das alles - Weil in der Datenbank mehr als 2500 Threads drin sind und mehr als3000 Postings. Das ist das Problem.
Also das Skript von Ashe nimmt in der halben Stunde Laufzeit schon auch alle Daten aus der XForum - Tabelle raus und schaufelt sie in die phpBB2 Tabelle rein. Aber es sieht eben _ nicht danach aus_ dass das Ergebnis stimmt.
Die Topic - Subjects stimmen z.B. nicht mehr mit dem Thread überein. Und sehr sehr oft fehelen einfach auch Postings im Thread. Dann sind - wenn man in die DB sieht auch irrwitzige Zuordnungen zu finden. Es werden zu Topic 1 z.B. zugeordnet Last Post : 7000.
Ergo Das kann doch nicht sein! Da stimmt doch was nicht! So aber sehen die Daten aus. Also: Gerne würde ich das mit dem Datenübertrag auch manuell machen - und eben dabei die Daten so von Hand sortieren.
@ Phillipp - ich bin schon etwa fit in php und MySQL - aber ein Konversionsskript selber schreiben trau ich mit nicht zu. Wenn ich aber die Logik und die Relationen zwischen den beiden DATENSÄTZEN kapiert habe, dann würde ich viel lieber das alles von Hand machen.
Das gibt mehr Kontrolle.- Was meint ihr denn dazu?
Vielen Dank schon mal für die Antworten! Das ist ein sehr wichtiger Thread. Bestimmt wollen noch einige von dem alten XForum auf phpBB umsteigen.
Bernard der Rennfahrer
Verfasst: 06.05.2003 22:02
von PhilippK
Von der Logik ist es recht einfach:
du fängst mit einem Thema an, erstellst den Eintrag in der phpbb_topics und merkst dir die für den Datensatz vergebene ID. Dann erstellst du in der phpbb_posts den Eintrag für den ersten Beitrag (also den Eröffnungsbeitrag des Themas) mit dem entsprechenden Verweis auf das Thema (topic_id) und merkst dir auch hier die ID. Dann erstellst du in der phpbb_posts_text einen Datensatz mit der gleichen ID wie der Datensatz in der phpbb_posts. Anschließend machst du die Schritte für die phpbb_posts und phpbb_posts_text für jede Antwort auf den Beitrag.
Wenn du das dann für alle 2500 Themen gemacht hast, bist du fast fertig. Du solltest dann noch die entsprechenden Daten synchronisieren, wobei dir ggf. mein
DB Maintenance Mod helfen kann.
Gruß, Philipp
Verfasst: 08.05.2003 16:02
von hinault - der Rennfahrer
Hallo Phillip
danke für die Antwort!
PhilippK hat geschrieben:Von der Logik ist es recht einfach:
du fängst mit einem Thema an, erstellst den Eintrag in der phpbb_topics und merkst dir die für den Datensatz vergebene ID. Dann erstellst du in der phpbb_posts den Eintrag für den ersten Beitrag (also den Eröffnungsbeitrag des Themas) mit dem entsprechenden Verweis auf das Thema (topic_id) und merkst dir auch hier die ID. Dann erstellst du in der phpbb_posts_text einen Datensatz mit der gleichen ID wie der Datensatz in der phpbb_posts. Anschließend machst du die Schritte für die phpbb_posts und phpbb_posts_text für jede Antwort auf den Beitrag.
Wenn du das dann für alle 2500 Themen gemacht hast, bist du fast fertig. Du solltest dann noch die entsprechenden Daten synchronisieren, wobei dir ggf. mein
DB Maintenance Mod helfen kann.
Gruß, Philipp
das hört sich alles sehr logisch an - aber es ist so einfach nicht! Man sollte es irgendwie automatisieren. Hast du einen Vorschlag für das ! ? DAS wäre super!
Eine Frage an dich - hast du das Script von Ashe mal angesehen -
http://perso.wanadoo.fr/ashe/phpBB2/
- also es funzt bei mir wie gesagt nicht richtig! Ich habe damit Stress auf gut deutsch!
Auffällig ist eben auch folgendes: Wenn ich, um die Last bei der Konversion zu verrringern z.B. nur noch die Threads in der Datenbank drin lasse, dann ist das mit der Konversion nicht zu machen. Dann schreibt der Konverter mir diese XForum Threads in die phpBB Tabellen:
er schreibt dann (bei angenommenen 1000 XForum-Threads:)
- 1000 phpBB-Topics
- 1000 phpBB_posts
- 1000 phpBB_post_text
- du merkst da stimmt dann später eben die Zählung nicht mehr: Wenn ich in einem zweiten Vorgang der Konversion dann die posts hinterher konvertiere dann macht diese Konversion auch ihren Durchlauf ; ABER DANN Kommt eine wiederrum neue Zählung der Posts und Post_text heraus!
Das Problem ist dann eben - ich kriege zwei DATENSÄTZE, die sich schlecht integieren oder harmonisieren lassen. Das ist das Problem. Hast du schon mal den Konverter von Ashe getestet.
Was meinst du dazu ?
gruss
Hinault
Verfasst: 08.05.2003 16:32
von PhilippK
hinault - der Rennfahrer hat geschrieben:er schreibt dann (bei angenommenen 1000 XForum-Threads:)
- 1000 phpBB-Topics
- 1000 phpBB_posts
- 1000 phpBB_post_text
- du merkst da stimmt dann später eben die Zählung nicht mehr:
Ich habe mir den Konverter noch nicht angeschaut (und werde es auch jetzt nicht tun), aber zumindest erscheint mir die oben genannten Meldung richtig. Wenn du 1000 Topics hast, müssen in den genannten drei Tabellen je 1000 Datensätze erstellt werden.
Gruß, Philipp