Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Effizientes Datenbankdesign

Einklappen

Neue Werbung 2019

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

  • [Erledigt] Effizientes Datenbankdesign

    Angenommen ich habe einen Memberbereich und speichere die User in der DB:

    Code:
    id | user | pw | email | ....
    Wäre es nun besser, wenn ich kaum benutzte Spalten in eine extra Tabelle ablege:

    Code:
    id | user | pw
    
    user_id | email | ...
    E-Mail wird eig. nur zum Newsletterverschicken ( ~ 1x im Monat), Passwort ändern gebraucht.

    Oder reicht es aus, wenn ich meine Abfragen immer so formuliere, dass nur die gebrauchten Spalten verwendet werden, also:

    Code:
    SELECT
        `user`,
        `pw`
    FROM ...
    
    anstatt
    
    SELECT *
    FROM ...
    Wäre über die Meinung erfahrener Programmierer sehr dankbar.

    mfg Yanko

  • #2
    Schwer zu sagen. Aber hast du Performanceprobleme? So was wird dir kaum was bringen, vor allem nicht wenn du keine großen BLOB Spalten hast oder nicht hunderte verschiedene Spalten.

    Die einzelnen Spalten zu selektieren solltest du sowieso anstatt * machen.

    Kommentar


    • #3
      Zitat von Flor1an Beitrag anzeigen
      Schwer zu sagen. Aber hast du Performanceprobleme? So was wird dir kaum was bringen, vor allem nicht wenn du keine großen BLOB Spalten hast oder nicht hunderte verschiedene Spalten.
      Performanceprobleme weis ich noch nicht, weil ich noch beim planen des Projektes bin. Ich habe etwa 40, davon werden 4 nur sehr selten gebraucht, und der Rest wird auf den einzelnen Seiten gebraucht, z.b auf dem Profil werden Daten wie Alter, Homepage,.. gebraucht, auf anderen werden wieder 4-5 Spalten gebraucht, und da dachte ich mir die DB nach diesen Kriterien zu gruppieren und mit
      Code:
      WHERE user.id = profil.user_id
      zu verbinden, dann bleibt es bei 1 Query.

      Zitat von Flor1an Beitrag anzeigen
      Die einzelnen Spalten zu selektieren solltest du sowieso anstatt * machen.
      Mach ich sowieso, aber ich dachte , dass wenn ich nur gezielte Spalten abfrage das Design der DB in diesem Bespiel mehr oder weniger nicht eine so große Rolle spielt.

      Kommentar


      • #4
        Ich denke es macht keinen relevanten Unterschied wenn du 4-5 Spalten mehr hast als du eigentlich brauchst. Da gibt es viel wichtigere Dinge zu beachten (Index, gute Queries, etc)

        Sowas kannst du auch im nach hinein noch recht einfach lösen wenn du deine Daten richtig kapselst.

        Kommentar


        • #5
          Teilweise macht es auch Sinn PHP zu nehmen als die SQL um ein weiteres Element zu erweitern.

          Eine If Abfrage mit einen continue meine ich jetzt als Beispiel.

          Kommentar


          • #6
            Hä?

            Kommentar


            • #7
              Bestimmte Daten auszulagern, scheint mir eher eine Architekturentscheidung zu sein. Klassisch würde man bspw. Userdatensatz und Accountdatensatz voneinander trennen, auch wenn in der Zielapplikation letztendlich eine 1:1 Beziehung besteht.
              [COLOR="#F5F5FF"]--[/COLOR]
              [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
              „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
              [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
              [COLOR="#F5F5FF"]
              --[/COLOR]

              Kommentar

              Lädt...
              X