2009-03-13 4 views
1

Hey Leute und Mädels, ich habe ein Feld in einer Tabelle, in dem ich verschiedene Arten von Daten speichern werde, wie: X-Large, Medium, Small .... oder ich speichere: 22-März-2009, 1 Jahr, 2 Jahre, 3 Jahre ... oder 06Monate, 12 Monate, 1 Jahr, oder ich könnte speichern: "33-36", "37-40" ... und diese Daten nicht behoben, ich muss in Zukunft möglicherweise neue Kategorien hinzufügen ...Datentyp eines Feldes

Die offensichtliche Wahl eines Datentyps wäre ein nvarchar (Länge), aber andere Vorschläge? Gibt es eine Möglichkeit, dies zu umgehen ??? Danke im Voraus ...

Antwort

3

Klingt, als ob Sie versuchen, eine "Größe" zu speichern. Vielleicht brauchen Sie eine "Size" -Tabelle mit diesen Werten (X-Large, Medium, Small, 1 Jahr usw.) und ein ID-Feld, das in die andere Tabelle geht.

Warum Sie auch ein Datum im selben Feld speichern möchten, ist ein bisschen verwirrend für mich. Sind Sie sicher, dass Sie dort nicht zwei verschiedene Felder haben sollten?

ETA: Basierend auf Ihren Kommentar, würde ich ein paar zusätzliche Tabellen empfehlen die Erstellung:

Sizetype - Würde die Art der „Größe“ legen Sie fest, mit arbeiteten (zB Kinderkleidung, Kinderschuhe, Mens Schuhe, Damenschuhe, Herrenhemden, Herrenhosen, Damenhemden, Damenhosen, etc.). Hätte zwei Spalten - eine ID und eine Beschreibung.

Größe - würde die einzelnen Größen (z. B. "Größe 5", XL, 33-34, 0-6 Monate usw.) definieren. Hätte drei Spalten - und ID, eine Beschreibung und die entsprechende SizeType-ID von SizeType.

Jetzt auf Ihrer Produkttabelle, würden Sie die ID aus der Größentabelle setzen. Das gibt Ihnen eine gewisse Flexibilität, wenn es darum geht, neue Größen hinzuzufügen, herauszufinden, welche Größen zu welcher Art von Produkten usw. gehören. Sie könnten es auch weiter abbauen, um das Design noch besser zu machen, aber ich möchte die Dinge hier nicht verkomplizieren .

+0

Es ist Größe, aber Größe für Babykleidung basiert auf Alter, Monaten oder Jahren. Und Größe für Schuhe haben anderes System als Kleidung, was denken Sie, dass ich tun sollte? – Maen

0

nvarchar (max) würde funktionieren. Andernfalls könnten Sie mehrere Spalten haben, eine für jeden möglichen Typ. Das würde dich davon abhalten, Dinge wie Zahlen mit doppelter Genauigkeit in Strings und zurück zu konvertieren.

0
  • nvarchar (max), wenn die Daten in Strings von weniger als 2Gb begrenzt ist.
  • ntext, wenn Sie Strings von mehr als 2 GB zulassen müssen.
  • binär oder Bild, wenn Sie Binärdaten speichern müssen.
1

Egal was Sie tun, sieht solche Datenbank-Design nicht gut aus.

Noch können Sie BLOB-Datentyp verwenden, um nur Daten in einer Spalte zu speichern, oder einen Texttyp, wenn es Text ist (auf diese Weise funktioniert die Suche besser, Groß- und Kleinschreibung usw.).