【发布时间】:2011-08-14 15:48:32
【问题描述】:
在数据库中,我希望能够将不同类型的值分配给变量表中的变量。那么我是否需要为每种值类型创建一个单独的值表?如果是这样,我不确定您如何将 Values 实际链接到正确的表并因此链接到正确的值。我怎样才能达到我所追求的目标?
Variables
ID
Name
VariableValuesLink
ID
IDVars
IDVals
Values
IDvals
ValuesValueLink
ID
IDvals
IDval
ValuesInt
IDval
IntVal
ValuesFloat
IDval
FloatVal
ValuesDouble
IDval
DoubleVal
etc...
etc...
etc...
etc...
我的目标是得到这样的东西:
Variable:
ezas123
Values:
1 (Int)
2.0 (Float)
3.0 (Double)
Variable:
QuickFox
Values:
The (TinyText)
Quick (TinyText)
Brown (TinyText)
Fox (TinyText)
Jumped (TinyText)
Over (TinyText)
The (TinyText)
Lazy (TinyText)
Dog (TinyText)
Variable:
Pangrams
Values:
The Quick Brown Fox Jumped Over The Lazy Dog (Text)
How quickly daft jumping zebras vex (Text)
因此,当我查询数据库时,我将能够取回这组结果(其中值的类型不同)
Variable Value
ezas123 1
ezas123 2.0
ezas123 3.0
QuickFox The
QuickFox Quick
QuickFox Brown
QuickFox Fox
QuickFox Jumped
QuickFox Over
QuickFox The
QuickFox Lazy
QuickFox Dog
Pangrams The Quick Brown Fox Jumped Over The Lazy Dog
Pangrams How quickly daft jumping zebras vex
【问题讨论】:
-
我想如果最坏的情况变得更糟,我可以简单地将值声明为数据类型 VARCHAR(255) 并有另一列来声明变量的类型,所以当我稍后处理它时我可以转换它任何需要的东西。
-
我也是这样做的。他们都有自己的优势——我认为 varchar(max) 或 nvarchar(max) 大多数时候可能更容易。如果您有很多用户输入,它可能会变得很麻烦——因为在您在字典中有数据之后会出现数据类型转换问题(作为您输入之前的操作)。
-
您使用的是哪个 DBMS?
标签: sql database types relationships sqldatatypes