Neuigkeiten:

still alive...

Hauptmenü

Die Objekt Idee

Begonnen von Powie, 20. Oktober 2005, 19:36:53

Vorheriges Thema - Nächstes Thema

Powie

Ich versuche jetzt mal einen Anfang der verrückten \"Idee\" zu schreiben, ein Teil davon ist bei mahe gewachsen, das Konstrukt entspringt meiner ,,Phantasie".
Das neue System sollte logisch eine Userdatenbank haben. Es wird keine Rechte geben die sich auf einzelne User beziehen. Alle Rechte werden nur über ,,Gruppen" organisiert und benötigen eine Zugehörigkeit des Users in einer speziellen Gruppe. Soviel erst einmal zum Thema User.
Das neue System wird nur 2 wichtige Datenstrukturen haben:
1.   Kategorien: Dies ergeben den Baum
2.   Objekte: Die Objekte sind die eigentlichen Daten ( News, Artikel, Forum Themen, Bilder, Files, Kommentare, Umfragen ) Objekte können parallel, seriell , beides oder auch nur seriell sein...
Grundstruktur: Eine jede Homepage, in welcher Form auch immer, stellt immer wenn man sie strukturiert einen Baum (Tree) dar. Bisher hat jedes Script eigene Kategorien die einen Tree bilden. Das neue System wird nur einen Tree haben. Die Kategorien ergeben einen beliebigen Baum. Jede Kategorie hat Eigenschaften die verschiedene Sachen steuern und festlegen welche Objekte in der Kategorie enthalten sein können.
Die Objekte in den Kategorien können in paralleler als auch serieller Form geordnet werden. Das ist ne fixe Idee, erklärt sich aber folgendermaßen: Jede Kategorie wird in den Eigenschaften besitzen welche Objekte enthalten sein können, aber auch welche Objekte diesen untergeordnet sein können. Das Objekt ,,Kommentar" ist zum Beispiel ein Objekt welches nur seriell einem anderen zugeordnet sein kann.
Hat eine Kategorie die Eigenschaft ,,Forum", so werden sich dort parallel ,,Post" Objekte befinden. Diese ergeben die Threads. Zu jedem Post kann aber auch seriell ein weiterer Post existieren, so bauen sich die einzelnen Postings zu einem Thema auf. Genauso kann zum Post ein ,,File" Objekt seriell angehangen sein, oder ein ,,Bild" Objekt... Je nachdem was in der Kategorie ,,erlaubt" ist. Ein Thread mit Umfrage enthält am Start das ,,Umfrage" Objekt...  Es ergibt sich somit im Endeffekt ein Baum mit beliebigen seriellen und parallelen Objekten. Alles abgehandelt über eine Haupttabelle, ergibt dies eine wunderbare Volltextsuche, ist ultra flexibel und erweiterbar. Um neue Objekte zu kreieren müssen diese nur ,,beschrieben" werden.
Zu jedem Objekt wird es einen Modifier geben:
Editor: Zum bearbeiten
Lister: Zum Anzeigen in Listenform
Viewer: Zeigt detailiert an
XXX: Man kann auch hier wieder Modifier definieren, zum Beispiel einen ,,Printer" der das druckbar macht.... Phatansia halt...
To be continued

.. was meinst du mit \"seriell\"? Im Sinne von \"voneinander-abgeleitet\"?
 
kOOni

mahe

zB wie hier im Forum:
StartPost
Post2
Post3
Post4
....
eben eins nachn andern.
Das andere (parallel) würde wenn man es nur auf ein Forum bezieht eine Threaded-View sein (eben ein Baum)
Und genauso hängen eben die Objekte in den jeweiligen (Unter)Kategorien bzw. an anderen (Unter)Objekten.

http://blog.mahe.at\" rel=\"external nofollow\">http://blog.mahe.at/wp-content/uploads/2007/06/88x31_1.jpg\" alt=\"88x31_1.jpg\">


Ja, diese Signatur dient zur Werbung!


Und dass ich meine Posts wiederfinde ...


Powie

seriell zum Beispiel auch bei Artikeln:
Parallele Artikel, sind alles unterschiedliche Artikel in einer Kategorie... 5 serielle Artikel ergeben simpel einen Artikel mit 5 Seiten.....

milindur

Nochmal zur Erklärung \"seriell\" vs. \"parallel\". Wenn wir bei der Beschreibung eines Baumes bleiben, wäre eine parallele Anordnung gegeben, wenn diese Knoten einen gemeinsamen Elter haben, parallele Knoten sind also Geschwister. Eine serielle Anordnung unter einem Knoten wäre gegeben, wenn diese Knoten jeweils immer nur ein Kind bzw. ein Elter haben.
Das Konzept gefällt mir gut :H:. Allerdings muss hier die Abbildung des Baumes in das Datenbank-Schema sehr gut durchdacht sein, damit die notwendigen Operationen effizient durchführbar sind.

Powie

Den Baum generieren ja die Kategorien, die Objekte sind dann die eigentlichen Daten.....

dec

wie beschreibst du dann genau die relation zwischen objekt und kategorie?
kann ein objekt mehreren kategorien angehören? würde dies eigentlich so vorschlagen...

spass ist, was ihr draus macht


mahe

Das könnte zur Folge haben dass ein Script alleine nichtmehr lauffähig ist.
(zumindest so wie ich mir das gerade vorstelle /uploads/emoticons/icon_e_wink.gif.3167d127940f44558fbf1ccd9b6d60a9.gif\" alt=\";-)\" />)

http://blog.mahe.at\" rel=\"external nofollow\">http://blog.mahe.at/wp-content/uploads/2007/06/88x31_1.jpg\" alt=\"88x31_1.jpg\">


Ja, diese Signatur dient zur Werbung!


Und dass ich meine Posts wiederfinde ...


Powie

im Prinzip ist ja auch eine Kategorie nur ein Objekt.........  /uploads/emoticons/icon_e_smile.gif.4a0acefcb917340d2c82e5239c009e6e.gif\" alt=\":)\" />

mahe

im Prinzip is auch alles nur PHP & MySQL /uploads/emoticons/icon_e_surprised.gif.a8707b3f35a569cb4cfe563fc72ef78d.gif\" alt=\":-o\" />

http://blog.mahe.at\" rel=\"external nofollow\">http://blog.mahe.at/wp-content/uploads/2007/06/88x31_1.jpg\" alt=\"88x31_1.jpg\">


Ja, diese Signatur dient zur Werbung!


Und dass ich meine Posts wiederfinde ...


legato

Und eigentlich sind das eh nur 1en und 0en.


http://www.jendryschik.de/wsdev/einfuehrung/\" rel=\"external nofollow\">XHTML | http://www.css4you.de\" rel=\"external nofollow\">CSS | http://www.css4you.de/wslayout1/\" rel=\"external nofollow\">Tabellenloses Design | http://tut.php-q.net/\" rel=\"external nofollow\">PHP



.. lassen wirs am Besten gleich ganz sein. Lohnt nicht /uploads/emoticons/icon_e_surprised.gif.a8707b3f35a569cb4cfe563fc72ef78d.gif\" alt=\":-o\" />/uploads/emoticons/icon_e_biggrin.gif.1a84f5257b36e14b36d04985314f877f.gif\" alt=\":-D\" />
 
kOOni

dec


Original von mahe Das könnte zur Folge haben dass ein Script alleine nichtmehr lauffähig ist.
(zumindest so wie ich mir das gerade vorstelle /uploads/emoticons/icon_e_wink.gif.3167d127940f44558fbf1ccd9b6d60a9.gif\" alt=\";-)\" />)
[/quote]
jein - von vorteil wäre es zum beispiel bei bildern. da kann ich bilder einem (fussball)anlass zuordnen, weiter aber ein einzelner spieler seinem namen. dann hast du in kategorie 1 alle bilder des spiels und in kategorie 2 alle bilder des spielers X aller bisherigen saisonmatches.
weiter ausgebaut kannst du kategorien zu bestimmten themengebieten anlegen und diese abfragen: kommst du auf einer übersichtsseite zu einträgen im forum, in der bilderdb, einzelne links und downloads etc.

spass ist, was ihr draus macht


Hallo.
Also diese Objektidee ist sehr komplex. Ich habe mir die Beiträge mehrmals durchlesen müssen, damit ich das wichtigste rausziehen konnte. Im Endeffekt wollt ihr ein System schaffen, dass an sich aus autarken Objekten, aber auch aus kooperierenden Objekten besteht. Diese \"Objekte\" sind dann jeweiligen Kategorien zugeordnet. Boards, Threads, Posts, User, Bilder, Kommentare sind für euch \"Objekte\". Beziehungen unter diesen Gebilden sind beispielsweise, dass ein Thread-Objekt mehrere Posts *enthalten* kann, welche wiederrum von User-Objekten geschrieben wurden.
Habe ich das soweit richtig verstanden oder gibt es hier noch Denkfehler bzw. Anmerkungen, Powie und mahe ?
Wenn ich jetzt mal davon ausgehe, dass ich das, wie oben, richtig verstanden habe, dann versuche ich es mal etwas weiterzutreiben:
Wir streben hier eine komplett objektorientiere Lösung an. Es gibt keine Grauzone mehr, sondern alles ist in Objekte unterteilt. Das Gute an diesem Konzept ist, dass man es sehr realitätsnah ausdrücken kann. Also mit realitätsnahe meine ich das jetzt etwas abstrakt gesehen, bezogen auf die Beziehungen unter den Objekten und von der Art und Weise, wie man sie *verwendet*.
Zurück zu der Idee mit dem Baum. Also ist der Ausgangsknoten aller Zweige bspw. die Homepage, also das Homepageobjekt. hmm.. Klingt irgendwie blöd; ich nehme mal Root-Objekt. Nun ist aber die Frage, wie sich die Zweige alle abspalten?
Überlegungen:
[Wir setzten das Newsmodule, das Bildergalerie-Modul und das Forum-Modul ein]
 


/Root-Objekt
|
|:: >Übersicht aller News
|     -> News-Beitrag (*nach Klick des Users*)
|         -> Kommentare zu den News
|         -> Schreiber / Autor der News
|             -> Profil des Users
|                 -> ICQ (Link)
|                 -> Homepage (Link)
|                 -> verfasste News bzw. Forenbeiträge (Link)
|                     -> ... [Forum siehe unten]
|         -> angehängte Links
|
|::> Übersicht aller Boards und deren Informationen. Zudem noch
|     Infos zu dem Forum selber, sowie Menue etc.
|     -> Board mit weiteren Unterboards sowie Zusatzinformationen
|         -> Threadübersicht mit Postangaben, letzter Post etc.
|             -> Thread [!]
|                 -> Auflistung der Posts im Thread mit Autor,
|                     dessen Infos etc.
|                 -> Fläche bzw Button für erstellen einer Antwort
|                     bzw. eines Threads

 
 
Das war nur ein kleiner Ausschnitt. Es würde sich also kein richtiger Baum mehr ergeben, sondern eine Art Netz. Denn ein Baum hat keine Quersprünge, keine Rücksprünge. Das besondere bei diesem Netz ist aber, dass es einen *Anfang* gibt. (Im Endeffekt eine Fusion aus Baum und Netzstruktur mit Quersprüngen, aber auch Sackgassen)
Wie möchte man denn nun die Wege untereinander beschreiben? Es ist ja so, dass der User sich per Buttons und Links bzw. Weiterleitungen auf der Seite bewegt. Also man gibt ihm immer ein paar Türen vor, durch die er gehen kann und je nachdem, welche er nimmt, kommt er in einen neuen Raum mit neuen Türen. Oder in eine Sackgasse, in der er nur noch zurück kann [Alles jetzt mal etwas bildlich beschrieben /uploads/emoticons/icon_e_smile.gif.f7ec63a2b1c3d90a9415e40455642502.gif\" alt=\":-)\" /> ]
Man hangelt sich somit bildlich gesehen von Objekt zu Objekt. Nur es bricht etwas mit Objektmodell, denn man kann Objekte nur begrenzt benutzten bzw. anschauen. Dies wäre beispielsweise bei geschützten Foren bzw. Threads der Fall. Aber ich denke, dass wäre nicht das Problem.
Wie bauen wir die Objekte auf ?


Name Post
-: Eigenschaften
  -> Postname
  -> Postdatum
  -> Postautor (Link zu dem Userobjekt)
  -> Postinhalt
  -> Posticon
  -> ...
-: Funktionen
  -> Zeige_Post ( )
  -> Lege_Post_an ( )
  -> Ändere_Post ( )
  -> ...

 
 
Ich wäre dafür, dass wir hier auf der Vererbungsschiene fahren. Das heisst, dass es ein Rootobjekt, ein Mutterobjekt gibt, von dem alle anderen abgeleitet sind. Daraus ergibt sich dann ein Vererbungsbaum, der abgelaufen wird. Ich weiß nicht recht, ob PHP Mehrfachvererbung unterstützt, wie C++. Wenn ja, dann könnte man hier noch einiges mehr machen. Wenn nicht, auch nicht so schlimm, dann halt einfach serielle Ableitung bzw. Vererbung.
 
Verfolgen wir den oben genannten Ansatz von mir, dann können wir das schön über die Klassenbibliothek realisieren. Da glaube ich, würde es wenig Probleme geben. Aber nun mal wieder weg von der Realisierung, wir wollen wieder etwas Abstrakter werden. Wie findet ihr meine Überlegungen? Fortführungen? Kritik?
 
kOOni
 - Editiert von e86 am 28.10.2005, 22:21 -
 - Editiert von e86 am 28.10.2005, 22:21 -

all your base are belong to us / Discord