目前我有一个包含CSV列的表格。我不确定是否要将整张桌子标准化。问题是此列configuration
最多可包含50个或更多不同类型的值。例如,在下面显示的表格中18, 20
,但对于同一列中的其他数据,它可能是0, 20, 21, 22, 23, 25, 26, 27, 40, 52, 54, 55
,依此类推,但这些值是唯一的。他们永远不会重复。
我不知道它的最大数量是多少(可能会有所不同),这就是我将其保存为CSV的原因。我目前无法正常化它,或者我不确定我是否应该将其正常化。这里有什么帮助吗?
id tester_type device_id board_id configuration
75946 UFLEX 997 220
44570 UFLEX 450 220 18,20
44569 UFLEX 449 220 18,20
44568 UFLEX 448 220 18,20
44567 UFLEX 447 220 18
注意:Configuration
列也包含空值或空格。
答案 0 :(得分:0)
我必须查询它,所以我想我必须将它标准化。
是的,你这样做:)
如果创建表,这是否意味着我必须为每个可能的配置值创建?
标准化结构的一个例子是:
$.ajax({
url: "functions.php",
dataType: "JSON",
data: {id: id},
type: 'POST',
success: function(json){
for(var i=0;i<json.length;i++){
alert(json[i].fname);
}
}
});
如果您正在使用InnoDB,则连接表的每一列也是其各自父表的外键。
答案 1 :(得分:0)
我不同意“必须”和“必须”标准化立场。我的2美分:
不规范化狭窄的字段。例如,不要用4字节country_id替换2个字母的国家/地区代码。
“规范化以简化”:执行规范化多个表中使用的内容和可能会发生变化。有时名称,地址,公司名称等属于此类别。这样你就可以在一个地方改变价值,而不是很多地方。
“规范空间”:执行规范化可为数据集节省大量整体空间的事物。 (这比千兆字节表更适用于千兆字节表。)
规范化,但不要“过度规范化”。当你过度规范化并且无法优化讨厌的JOIN
时,你会弄明白我的意思。
如果您想了解更多具体建议,请查看SHOW CREATE TABLE
并为任何不明显的列示例值。