Ankündigung

Einklappen
Keine Ankündigung bisher.

Relation(Datenbank)

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

    Relation(Datenbank)

    hi,

    bastel gerade an einer hp als abschlussprojekt und bin mir nicht sicher, wie es mit den relationen aussieht. hatte es nicht richtig im unterricht. haben leider nur kurz join besprochen und jetzt bastel ich gerade mit mysql workbench an einem design rum.

    hier mal ein screenshot: click

    bin mir nicht sicher, ob ich die 1:n verbindung richtig gewählt habe und ob es überhaupt die richtige methode ist.

    #2
    du solltest dir nochmal gedanken machen was ne datenbank ausmacht.
    So wie das momentan dasteht wird es für jeden User IMMER eine Such und Find Form geben, was halt die Vorteile ab absurdum führt.

    Du hast ne Table für den User, für den Job, für die Firma mögl. ne flache fürs Feedback.
    Beim Erzeugen beziehst du die Infos dann natürlich aus dem User und seinen dazugehörigen Relationen.

    Denn eigtl. sollte man das Interface nicht in der Datenbank finden.

    P.S. Fremdschlüssel sollten hier dann auch beim einzelnen User liegen, denn so müsstest du mehrere IDs in einem Feld speichern, was nicht logisch ist und schon gar nicht atomar.

    Kommentar


      #3
      beschreib mal bitte in worten, was du alles in deiner datenbank speichern willst. so ausführlich wie es dir nur möglich ist!

      Kommentar


        #4
        Momentan ist es so.

        Eine search_form kann n-viele user haben, aber ein user nur eine search_form, genauso verhält sich user zu find_form

        Kommentar


          #5
          Er meint eher deine Projekt Beschreibung.

          Und ich meine, du wirst für jeden User immer eine eigene Form auf beiden Seiten erzeugen (begin_date) in der search form zB. Dadurch sparst du keinen Platz. Dafür solltest du eine Relationen Table erzeugen.

          Kommentar


            #6
            würde es halt gerne so haben, dass ein registrierter user zwei arten von formularen(inserate) aufgeben kann!
            eines z.b. für jobangebote und eines für jobsuchende.(ein user mehrere formulare)

            würde dann eine auswahl(select) form machen und je nachdem was er auswählt kommt dann das dazu gehörige formular.

            feedback sollten alle user(unregistriert wie ein gästebuch) geben können.

            e: bei der registrierung will ich halt so wenig daten, wie es nur möglich ist, speichern. deswegen lade ich so viele daten in die inserate(formualre) aus. weil die kann der user später löschen.

            e2: alle user sollen die zwei formulare mehrfach ausfüllen können.

            hoffentlich versteht ihr was ich meine 8D

            Kommentar


              #7
              klar ich verstehe das schon, allerdings wird eine datenbank einfach anders benutzt.

              Dir ist nicht klar, wie die Logik aussehen muss, damit eben so wenig Daten wie möglich in der DB landen.

              http://de.wikipedia.org/wiki/Entity-Relationship-Modell

              Und ich geb dir heut Abend noch den Tipp, du willst:

              -User
              -Jobs
              -Firmen
              -Feedback

              -UserJobs

              Als Tables haben

              Kommentar


                #8
                Allein bei deiner Benennung hat man schon kein Bock mehr sich das genauer anzugucken. Also entweder ziehst du die Präfixe durch oder du lässt es komplett und wenn dann müssen die Präfixe auch zur Tabelle passen.

                Kommentar


                  #9
                  Zitat von verloreneSohn
                  klar ich verstehe das schon, allerdings wird eine datenbank einfach anders benutzt.

                  Dir ist nicht klar, wie die Logik aussehen muss, damit eben so wenig Daten wie möglich in der DB landen.

                  -User
                  -Jobs
                  -Firmen
                  -Feedback

                  -UserJobs

                  Als Tables haben
                  will es halt eben nicht nach firmen aufspalten. :(

                  Zitat von DeepII
                  Allein bei deiner Benennung hat man schon kein Bock mehr sich das genauer anzugucken. Also entweder ziehst du die Präfixe durch oder du lässt es komplett und wenn dann müssen die Präfixe auch zur Tabelle passen.
                  hab es jetzt oben noch mal editiert

                  es muss ja kein logisches meisterwerk werden. ich soll halt nur user generatet content haben. heisst user eingaben in die datenbank schreiben und dann wieder auslesen.

                  bin mir halt blos nicht sicher bei den verknüpfungen. ob die "1" bei der user tabelle sein muss, oder bei den search_job find_job tabellen.

                  Kommentar


                    #10

                    will es halt eben nicht nach firmen aufspalten. :(


                    Wo bitte liegt dann der Unterschied?Dann kannste das gleich alles in Text Dateien parsen.

                    Bsp. Nach deinem jetzigen Model benötigst du für jedes Forumlar mehrere Spalten (und damit Platz) die deine Firma beschreiben, und da das immerwieder passiert, stehen da immer und immerwieder dieselben Daten. Ich sag das nicht um den Besserwisser raushängen zu lassen. Aber falls ein Teil deiner Prüfung ist, eine Datenbank nach gewissen Kriterien zu bauen, fliegst du hier echt auf die Fresse. Den dafür baut man eine Firmen Table, da steht einmal drin, wie Firma X aussieht und dann steht da auch nur noch ein Foreign Key in deiner User Table und dann ist das maximal effizent. Und falls deine Firma mehrere Ansprechstellen nach Nutzer hat, dann ist das ebenfalls ne Table.

                    Kommentar


                      #11
                      Verbessert mit den Beziehungen die du haben willst:
                      Spoiler: 
                      users
                      u_id
                      u_email
                      u_password
                      u_gender
                      u_name
                      u_firstname
                      u_companyid

                      companies
                      c_id
                      c_name

                      joboffers
                      j_id
                      j_userid
                      j_companyid
                      j_cat
                      j_district
                      j_date
                      j_cash
                      j_title
                      j_desc
                      j_street
                      j_zip
                      j_town
                      j_pic
                      j_email
                      j_phone
                      j_fax

                      workeroffers
                      w_id
                      w_userid
                      w_cat
                      w_district
                      w_date
                      w_cash
                      w_title
                      w_desc
                      w_street
                      w_zip
                      w_town
                      w_pic
                      w_email
                      w_phone
                      w_fax

                      feedback
                      f_id
                      f_jobofferid
                      f_name
                      f_comment

                      users - joboffers = 1-N
                      users - workeroffers = 1-1
                      users - companies = N-1
                      joboffers - companies = N-1
                      joboffers - feedback = 1-N

                      Da users - workeroffers 1-1 ist kannst dus auch in eine Tabelle packen, keine Ahnung ob du das willst. Wozu das Feedback ist wusste ich nicht, ging weder aus den Screenshots noch deiner Erklärung hervor, habs mal zu den joboffers gepackt. Je nachdem kann man noch einige der Sachen aus den joboffers zu den companies packen.

                      (search_job und find_job waren so bescheuerte Namen, ich musste sie umändern, das rafft ja sonst niemand).

                      Kommentar


                        #12
                        Die Kontaktdaten aus den Suchtabellen, sollten noch zu den Usern/Firmen wandern, da ich denke das sie gleichbleibend sind?

                        Kommentar


                          #13
                          Hab nachdem ich "feddback" im Screenshot gesehen habe den Tab geschlossen

                          Kommentar


                            #14
                            Zitat von DeepII
                            Verbessert mit den Beziehungen die du haben willst:
                            Spoiler: 
                            users
                            u_id
                            u_email
                            u_password
                            u_gender
                            u_name
                            u_firstname
                            u_companyid

                            companies
                            c_id
                            c_name

                            joboffers
                            j_id
                            j_userid
                            j_companyid
                            j_cat
                            j_district
                            j_date
                            j_cash
                            j_title
                            j_desc
                            j_street
                            j_zip
                            j_town
                            j_pic
                            j_email
                            j_phone
                            j_fax

                            workeroffers
                            w_id
                            w_userid
                            w_cat
                            w_district
                            w_date
                            w_cash
                            w_title
                            w_desc
                            w_street
                            w_zip
                            w_town
                            w_pic
                            w_email
                            w_phone
                            w_fax

                            feedback
                            f_id
                            f_jobofferid
                            f_name
                            f_comment

                            users - joboffers = 1-N
                            users - workeroffers = 1-1
                            users - companies = N-1
                            joboffers - companies = N-1
                            joboffers - feedback = 1-N

                            Da users - workeroffers 1-1 ist kannst dus auch in eine Tabelle packen, keine Ahnung ob du das willst. Wozu das Feedback ist wusste ich nicht, ging weder aus den Screenshots noch deiner Erklärung hervor, habs mal zu den joboffers gepackt. Je nachdem kann man noch einige der Sachen aus den joboffers zu den companies packen.

                            (search_job und find_job waren so bescheuerte Namen, ich musste sie umändern, das rafft ja sonst niemand).
                            Schon mal vielen dank!! nice

                            hab es jetzt ein bisschen verändert. blos das ding ist halt, dass ich nicht nur companies erlauben will "joboffers" zu erstellen, sondern auch privat leute(alle user). vielleicht hab ich mich falsch ausgedrückt. also alle user können z.b. was eintragen(z.b. rasenmähen für 20€ usw.) und die privat leute sind ja keine companies. ich will halt gelegenheitsjobs/minijobs, praktika, ausbildung und fachkräfte bei j_select/w_select zur auswahl geben.

                            Welche tabelle/userid muss ich denn als erstes anklicken, wie von dir beschrieben(users - joboffers = 1-N), um die verknüpfung richtig zu machen.

                            sorry, vielleicht stell ich mich auch ein bisschen dum an. ^^

                            Zitat von Winston
                            Hab nachdem ich "feddback" im Screenshot gesehen habe den Tab geschlossen
                            ich brauchte leider einen zweiten user generated content der aus der datenbank kommt, deswegen hab ich noch eine feedback tabelle gemacht. das soll lediglich als "gästebuch" dienen und alle websitebesucher sollen da was eintragen können. dafür soll keine registrierung notwendig sein.

                            falls die website jemals online gehen sollte, wird es auf jeden fall entfernt. denkt sie euch einfach weg.

                            Kommentar

                            Lädt...
                            X