Was ist das beste Design für einen Tisch, ein Type
Feld, das aus int
oder besteht char(1)
? Mit anderen Worten, angesichts dieses Schemas:
create table Car
(
Name varchar(100) not null,
Description varchar(100) not null,
VehType .... not null
)
Ist es effizienter (leistungsmäßig) VehType
, ein int
oder ein zu sein char(1)
? Angenommen, Sie haben fünf Autotypen. Sollten Sie die inkrementierenden Werte 0 -> 4 oder Zeichen für die Typen verwenden (z. B. 'v', 's', 'c', 't', 'm')?
Wenn es mehr ist, würde ich eine separate Typentabelle verwenden und eine Fremdschlüsselbeziehung haben, aber ich sehe keine Notwendigkeit dafür.
Ich stelle fest, dass die sys.objects
Katalogansicht ein Zeichen für das type
Feld verwendet. Gibt es einen Grund dafür? Greife ich hier nur nach Luft, und ist es das, womit ich mich wohler fühle?
quelle
Nur als Ergänzung zur Antwort von gbn .
Vielleicht könntest du so etwas schaffen:
Sie können also mit Ihrer Enumeration beliebig vorgehen und gleichzeitig die relationale Integrität (mithilfe eines Fremdschlüssels) gewährleisten. Mit der
code
Spalte können Sie Ihre Zeichencodes nach Belieben verwenden, sodass sie in der Datenbank dokumentiert werden (und Sie können die Codeinformationen direkt aus der Datenbank extrahieren, ohne dass eine komplizierte Transformation des Anwendungscodes für eine Systemintegration erforderlich ist).quelle
null
Code zulassen ?