Jörk: Spalte splitten oder datentyp "text"

hi,

ich hab eine datenbank mit einer spalte mit einer länge von ca 300 zeichen.
das problem is dass varchar ja nur 255 bzw 254 zeichen zulässt.
was soll ich jetzt machen.
aus der einen spalte zwei spalten machen oder bei der spalte den datentyp text benutzen.

danke im voraus

  1. hi,

    ich hab eine datenbank mit einer spalte mit einer länge von ca 300 zeichen.
    das problem is dass varchar ja nur 255 bzw 254 zeichen zulässt.
    was soll ich jetzt machen.
    aus der einen spalte zwei spalten machen oder bei der spalte den datentyp text benutzen.

    bei solchen fragen gibt es eigentlich immer nur ein relevantes kriterium:

    welcher datentyp entspricht dem inhalt am ehesten?

    wenn es sich um 300 zeichen handelt, die _zusammen_ eine bedeutung haben - dann wäre es absoluter blödsinn, sie über mehrere spalten zu verteilen.

    das datendesign hat sich noch dem inhalt zu richten, und nicht umgekehrt.

    text statt varchar wäre in deinem falle also vermutlich am angebrachtesten - wobei sich bei dem _zusätzlichen_ speicherbedarf, der dadurch entsteht, um genau _ein_ lächerliches byte handelt (siehe auch http://dev.mysql.com/doc/mysql/de/Storage_requirements.html).

    gruß,
    wahsaga

    --
    "Look, that's why there's rules, understand? So that you _think_ before you break 'em."
    1. yo,

      das datendesign hat sich noch dem inhalt zu richten, und nicht umgekehrt.

      inhalte spielen beim datenbank-design auch eine rolle, zum beispiel wenn es um performance geht, aber vielmehr als der inhalt, geht es beim datenbank-design darum, für jede entität seine attribute festzulegen. nicht immer sind einem die inhalte beim entwerfen eines daten-designs bekannt. insofern würde ich sagen, der inhalt passt sich in aller regel dem daten-design an.

      Ilja

      1. hi,

        [...] geht es beim datenbank-design darum, für jede entität seine attribute festzulegen.

        nee, ihre :-P

        nicht immer sind einem die inhalte beim entwerfen eines daten-designs bekannt. insofern würde ich sagen, der inhalt passt sich in aller regel dem daten-design an.

        gut, dann ist die lösung jetzt also, den text trotzdem ins varchar-feld zu schreiben, und den über eine länge von 255 zeichen hinausgehenden teil als verlust abzuschreiben?

        scnr,
        wahsaga

        --
        "Look, that's why there's rules, understand? So that you _think_ before you break 'em."
        1. yo,

          nee, ihre :-P

          ok, das sehe ich ein, ihre attribute ...

          gut, dann ist die lösung jetzt also, den text trotzdem ins varchar-feld zu schreiben, und den über eine länge von 255 zeichen hinausgehenden teil als verlust abzuschreiben?

          nein, weil das eine bedinkt nicht das andere. dein lösungsvorschlag war auch meiner meinung schon der richtige. nur der lösungsweg fand ich ein wenig "schwammig". das design kann sich schon aus den inhalten ergeben, in aller regel ist es aber umgekehrt, bzw. urch das design wird ja gerade die art der inhate festgelegt.

          Ilja

          1. hi,

            das design kann sich schon aus den inhalten ergeben, in aller regel ist es aber umgekehrt, bzw. urch das design wird ja gerade die art der inhate festgelegt.

            man baut also erst die häuser mit nur 1,50 m hohen räumen, und anschließend können deshalb nur pygmäen darin einziehen?

            gruß,
            wahsaga

            --
            "Look, that's why there's rules, understand? So that you _think_ before you break 'em."
            1. yo,

              man baut also erst die häuser mit nur 1,50 m hohen räumen, und anschließend können deshalb nur pygmäen darin einziehen?

              was normalisierung betrifft, so braucht man dazu keinerlei inhalte, man braucht nur die art der inhalte und deren abhängigkeiten. du kannst bei der programmierung auch eine neue klasse erstellen, ohne dass du dazu inhalte brauchst.

              Ilja

              1. hi,

                was normalisierung betrifft,

                handelt es sich denn hier um ein normalisierungsproblem?

                so braucht man dazu keinerlei inhalte, man braucht nur die art der inhalte und deren abhängigkeiten.

                also hängt der aufbau des datenmodells doch wohl von der beschaffenheit der daten ab.

                gruß,
                wahsaga

                --
                "Look, that's why there's rules, understand? So that you _think_ before you break 'em."
                1. yo,

                  handelt es sich denn hier um ein normalisierungsproblem?

                  ja, es hat damit zu tun. normalisierung ist letztlich ein mittel ein datenbank-design zu entwickeln. die frage ob eine oder zwei spalten würde im zuge der normalisierung geklärt werden. und das ist möglich ohne den inhalt eines feldes zu kennen. laut deiner aussage könnte aber genau das nicht der fall sein.

                  also hängt der aufbau des datenmodells doch wohl von der beschaffenheit der daten ab.

                  die beschaffenheit der daten ja, die konkreten inhalten nicht.

                  Ilja