Abfrage mit LIKE (Ist das Blödsinn was ich mache oder doch ok?)

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

  • Abfrage mit LIKE (Ist das Blödsinn was ich mache oder doch ok?)

    Hallo,

    um euch mein Problem zu verdeutlichen erkläre ich es am besten mal an einem Beispiel:

    User können verschiedene Angaben zu Ihrer Person - so zum Beispiel Fremdsprachenkenntnisse:
    Die Fremdsprachenkenntnisse sind wählbar in einem select-menu (und es könne mehrere angeklickt werden)
    Das dabei entstehende array $sprache wandele ich in eine Zeichenkette um, welche so aussieht:

    -1-,-4-,-7-

    Die Zeichenkette schreibe ich nun in das Feld sprache meine user-Tabelle
    Die Zahlen bezeichnen dabei jedesmal ein Fremdsprache

    Abfragen welcher user, welche Sprache kann mache ich per LIKE - Operator

    z.B. WHERE sprache LIKE '-1-' OR sprache LIKE '-5-'

    Meine Frage nun ist:

    Sollte ich die Sprachkenntnisse lieber in eine extra Tabelle schreiben um somit nicht mit like arbeiten zu müssen und Zeit bei derAbfrage zu sparen (Die Tabelle könnte relativ gross und gut besucht werden)?

    oder habt Ihr noch ne andere Idee?

    Dánke und Gruss


    Thommy
    www.unister.de

    what students want!

  • #2
    hmm,

    naja ich würde eine tabelle mit den Sprachen als Tabellen Name nehen, soviele Sprachen gibts ja nicht, dort würde ich dann die User_ID's eintragen. das ist wohl sinnvoller denke ich.

    Kommentar


    • #3
      Ich stimme JoelH absolut zu. Durch Verlagerung in eine eigene Tabelle als Relation zwischen Fremdsprache und Person hat mehrere Vorteile.

      Applikationen haben es ansich, daß ihre Funktionalität setig weiterentwickelt wird, durch ein relationales Konzept stellt baut man sich nicht unnötige Hürden.

      Durch eine Sprachen_Member Relation ist es auf einfache Weise Möglich mit SQL-Mitteln erweiterte Auswertungen beispiel betreffend Anzahl x-sprachiger Member zu ermitteln. Wieviel Member können mehr als eine Sprache und wenn wieviele, etc.

      Wird eine neue Sprache hinzugefügt, muß keine Source geändert werden.

      Die Datenstruktur wird leichter administrierbar.

      : Durch eine Tabelle

      Code:
      language
      +--------+---------+--------------------+
      | langid | langs   | langl              |
      +--------+---------+--------------------+
      |      0 | de      | deutsch            |
      |      1 | en      | englisch           |
      |      2 | fr      | französisch        |
      |      3 | es      | spanisch           |
      |      4 | po      | portugiesisch      |
      |      5 | pl      | polnisch           |
      +--------+---------+--------------------+
      
      language_member
      +--------+----------+-------+
      | langid | memberid | deflt |
      +--------+----------+-------+
      |      0 |        1 |   Y   |
      |      1 |        1 |   N   |
      |      2 |        1 |   N   |
      |      0 |        2 |   Y   |
      |      0 |        3 |   N   |
      |      1 |        3 |   Y   |
      +--------+----------+-------+

      Kommentar

      Lädt...
      X