我想为我的数据库使用SET
数据类型。因此,该类型的字段可以包含该数据类型中的一个或多个值。
但我有以下两个问题:
Q1。 SET
在数据库中用作数据类型是否正确?我认为并非所有数据库都支持它。
Q2。如果SET
不是一个好的选择,那么我可以使用哪些代替SET
?
答案 0 :(得分:0)
您应该使用带有外键的表:
YourTable
col1 ...
col2 ...
YourTypeCol char(1) FK to YourTypeTable
col4 ...
YourTypeTable
YourTypeCol char(1) PK <<make the data type fix your "set"
YourTypeColDescription string
例如,你有这样的数据:
CarTable
CarID int PK auto number
CarMaker int FK
CarBuilt date
....
CarID CarMaker CarBuilt
1 1 1/10/2005
2 4 3/18/2004
3 3 10/31/2009
...
CarMakerTable
CarMake int PK
CarMakeName string
CarMake CarMakeName
1 Ford
2 GM
3 Honda
4 Mazda
...
至于So that a field of that type can contain one or more values from that data type
我不推荐这个。最佳做法是每个“字段”仅存储一个值。在单个字段中存储多个值违反了Database normalization的原则,并且当您尝试将特定项目从“集合”中拉出时会导致出现问题。最好将每个值拆分为自己的行,这意味着更改表设计。提供有关您要存储的数据的更多信息,我可以为您推荐一个表格结构。