Spalte splitten oder datentyp "text"
Jörk
- datenbank
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
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
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
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
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
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
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
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
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