Meine Forum Datenbank

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Meine Forum Datenbank

    Hallo Leute,

    ich soll für meinen Lehrer ein Forum programmieren, in welchem es einfach nur möglich sein soll, sich zu registrieren, anzumelden,Threads zu eröffnen und dort Beiträge zu posten.

    Nur habe ich folgendes Problem:
    Meine Datenbank besteht aus 5 Tabellen, nur weiß ich nicht wie ich diese am besten Verknüpfen sollte.

    Code:
    +--------------+	+---------------+	+--------------+	+---------------+
    |    board     |	|    thread     |	|     post     |	|     user      |
    +--------------+	+---------------+	+--------------+	+---------------+
     board_id		 thread_id		 post_id		 user_id
     ¯¯¯¯¯¯¯¯		 ¯¯¯¯¯¯¯¯¯		 ¯¯¯¯¯¯¯		 ¯¯¯¯¯¯¯
     board_name		 board_id		 thread_id		 user_nickname
     board_info		 thread_name		 post_title		 user_password
     board_threads		 thread_answers		 post_time		 user_email
     board_posts		 user_name		 user_nickname		 user_posts
    						 user_posts
    Ich kann mit Joins noch nicht so wirklich umgehen, aber ich musste festellen, dass es doch ganz schön wär, diese zu beherrschen.

    Falls ihr Verständnisfragen zur Datenbank habt, könnt ihr diese natürlich gerne posten.

    Würde mich auf jeden Fall über eine Antwort freuen.

    Greetz, Metal

    PS: Wenn ihr (Logik-)Fehler findet, nennt sie mir bitte^^
    Zuletzt geändert von Metalphreek; 13.12.2007, 23:45.

  • #2
    Du willst ein Forum, also eine eigentlich komplexere DB Anwendung programmieren und weisst nicht, wie man Tabellen verknüpft. Na dann mal ran an die Lektüre.
    Erst mal was erarbeiten, dann um Hilfe fragen
    Beantworte nie Threads mit mehr als 15 followups...
    Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

    Kommentar


    • #3
      Sag deinem Lehrer, er soll nen fertiges System verwenden!

      Kommentar


      • #4
        Re: Meine Forum Datenbank

        Original geschrieben von Metalphreek
        ich soll für meinen Lehrer ein Forum programmieren
        Ich glaube kaum, dass du das für den Lehrer programmieren sollst. Ich denke eher, dass wir dir bei den Hausaufgaben helfen sollen

        Original geschrieben von Metalphreek
        in welchem es einfach nur möglich sein soll, sich zu registrieren und anzumelden, Threads zu eröffnen und dort Beiträge zu posten.
        Das gibt ja die Struktur schon fast vor

        Original geschrieben von Metalphreek
        Meine Datenbank besteht aus 5 Tabellen,
        Ich sehe nur vier. Aber wie gesagt, drei würden für ein einfaches System genügen
        Original geschrieben von Metalphreek
        Ich kann mit Joins noch nicht so wirklich umgehen, aber ich musste festellen, dass es doch ganz schön wär, diese zu beherrschen.
        Joins sind hier beschrieben
        Original geschrieben von Metalphreek
        Wenn ihr (Logik-)Fehler findet, nennt sie mir bitte
        Stichwort Normalisierung
        Gruss
        H2O

        Kommentar


        • #5
          Ich soll die wirklich für meinen Lehrer programmieren.
          Ich hab mit ihm n Deal: Wenn ich es schaffe ihn ein Forum zu programmieren, dann bekomme ich 15 Punkte.

          Und ja es sind nur 4 Tabellen, war müde ^^

          Ich hab mir schon öfters Joins-Tutorials durchgelesen, aber wirklich schlau draus geworden bin ich nicht.

          Was ist denn an meiner Datenbank falsch? Die dürfte eigtl vernünftig normalisiert sein.


          Du willst ein Forum, also eine eigentlich komplexere DB Anwendung programmieren und weisst nicht, wie man Tabellen verknüpft. Na dann mal ran an die Lektüre.
          Ich kann ja alles andere, also die PHP-Seiten, die Datenbanken erstellen, mein einziges Problem sind halt die Joins. Denn der Rest, ist überhaupt kein Problem für mich.

          Kommentar


          • #6
            vielleicht hilft dir das hier weiter.

            gruß
            peter
            Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
            Meine Seite

            Kommentar


            • #7
              Wo klemmt es denn eigentlich? Wenn du schon einiges zu JOINs gelesen hast, bist du doch wohl in der Lage, welche zu formulieren. Mach das mal und poste die, die nicht das liefern, was du wolltest. Also erstmal anfangen und bei konkreten Problemen wiederkommen.

              Kommentar


              • #8
                Original geschrieben von Metalphreek

                Was ist denn an meiner Datenbank falsch? Die dürfte eigtl vernünftig normalisiert sein.
                Wenn du einen vernünftigen Artikel über Normalisierung gelesen hättet, dann wüsstest du, dass z.B. der username weder in den posts, noch in den threads was verloren hat. Und was user_posts in der user-Tabelle soll, verstehe ich auch nicht. Aber auch andere Attribute sind mir unklar.
                Gruss
                H2O

                Kommentar


                • #9
                  Ich hab's ein bisschen verbessert, und hoffe nun, dass sie normalisiert und verständlicher ist ^^

                  Code:
                  +--------------+	
                  |    board     | 	#Beinhaltet die Informationen über ein Forum	
                  +--------------+	
                   board_id	 	#ID des Forums
                   ¯¯¯¯¯¯¯¯	 	 
                   board_name	 	#Name des Forums
                   board_info	 	#Informationen zum Forum
                   board_threads	 	#Anzahl der Threads in einem Forum
                   board_posts	 	#Anzahl der Posts in einem Forum
                  
                    board -> 1:n <-board_thread
                  
                  
                  
                  +--------------+
                  | board_thread |
                  +--------------+
                   board_id
                   ¯¯¯¯¯¯¯¯
                   thread_id
                   ¯¯¯¯¯¯¯¯¯
                  
                   thread -> 1:n <- board_thread
                  
                  
                  
                  +---------------+	
                  |    thread     | 	#Beinhaltet die Informationen über einen Thread
                  +---------------+	
                   thread_id	  	#ID des Threads
                   ¯¯¯¯¯¯¯¯¯	  
                   board_id	  	#Gibt an in welchem Board der Thread enthalten ist
                   thread_name	 	#Name des Threads
                   thread_answers	  	#Anzahl der Antworten auf den Thread
                   user_name	  	#Gibt an welcher User den Thread erstellt an
                  
                    thread -> 1:n <- thread_post
                  
                  
                  
                  +-------------+
                  | thread_post |
                  +-------------+
                   thread_id
                   ¯¯¯¯¯¯¯¯¯
                   post_id
                   ¯¯¯¯¯¯¯
                    post -> 1:n <- thread_post
                  		
                  
                  
                  +--------------+
                  |     post     |	#Beinhaltet die Informationen über einen Post
                  +--------------+
                   post_id		#ID des Posts
                   ¯¯¯¯¯¯¯	
                   thread_id		#Gibt an in welchem Thread der Post ist
                   post_title		#Titel des Posts (optional)
                   post_time		#Zeit und Datum, wann der Post geschrieben wurde
                   user_nickname		#Gibt an wer den Post geschrieben hat
                   user_posts		#Gibt an, wieviel Posts ein User bereits geschrieben hat
                  
                    user -> 1:n <- posts
                  
                  
                  
                  +--------------+
                  |     user     |	#Beinhaltet die Infromationen über einen User
                  +--------------+
                   user_id		#ID des Users
                   ¯¯¯¯¯¯¯		
                   user_nickname		#Nickname des Users
                   user_email		#E-Mail des Users
                   user_posts		#Gibt an, wieviel Posts ein User bereits geschrieben hat
                  greetz metal

                  Kommentar


                  • #10
                    Und dann überprüfst du mal, wieviel redundante nicht-FK-Attribute du in dieser DB hast!
                    Gruss
                    H2O

                    Kommentar


                    • #11
                      Original geschrieben von H2O
                      Und dann überprüfst du mal, wieviel redundante nicht-FK-Attribute du in dieser DB hast!
                      Also Datenredundanzen finde ich jetzt nicht, vielleicht könntest du mir sagen wo genau. Weil ich bin öfters durchgegangen, aber von Redundanzen kein Stück zu sehen (aus meiner Sicht)

                      greetz metal

                      Kommentar


                      • #12
                        mal n kleinen tipp. Hol mal bei threads und post user_name raus und erstetz es durch user_id, dürfte schon n bissl helfen

                        Kommentar


                        • #13
                          Also ich sehe auf den ersten Blick Redundanzen.
                          Der Kommentar "Gibt an, wieviel Posts ein User bereits geschrieben hat" kommt direkt zweimal vor.

                          Und sämtliche der nachfolgenden Spalten (ich gebe mal die Kommentare an) sind redundant:
                          - Anzahl der Threads in einem Forum
                          - Anzahl der Posts in einem Forum
                          - Anzahl der Antworten auf den Thread
                          - Gibt an, wieviel Posts ein User bereits geschrieben hat
                          Mit COUNT() und JOIN kannst du diese Werte alle "live" ermitteln. Das mag nicht die schnellste Lösung sein, aber du bist ja noch bei der Normalisierung. Optimierung kommt später.

                          thread_id #Gibt an in welchem Thread der Post ist
                          ist auch redundant. Dazu hast du schließlich die Relation thread_post.


                          OffTopic:
                          Wenn du das so deinem Lehrer lieferst, könnte er berechtigt annehmen, du hättest das Schema aus einer fertigen Boardsoftware übernommen.

                          Kommentar


                          • #14
                            Scheinbar willst du auch nicht - wie im ersten Post geschrieben - ein Forum bauen, sondern mehrere. Ok, dann brauchst du tatsächlich vier Tabellen. Ich hab mal versucht, das etwa so darzustellen, wie es funktionieren könnte:
                            Gruss
                            H2O

                            Kommentar


                            • #15
                              Sorry, hier noch das fehlende ERD:
                              Angehängte Dateien
                              Gruss
                              H2O

                              Kommentar

                              Lädt...
                              X