我正在“设计”一个mySql表,我有32列,我认为可能有点太多了。 有9个数字字段(int,tinyint,smallint),17 varchar,2个日期时间,4个文本。所有字符串都在utf8_unicode_ci校对中。
太多了吗?有什么建议?
答案 0 :(得分:1)
4个tinyint字段用于类别(每个元素可以属于4个不同的类别)
这听起来像repeating groups。这是关系数据库设计的一个缺陷。
同样可能适用于4个名称和4个描述。每个一对多关系都应该有一个从属表。
我无法从您的描述中判断出此设计的其他部分是否未正常化 但我猜它有。
违反规范化规则有一些合理的理由,但与任何优化一样,应该优化特定查询。
在没有任何查询上下文的情况下,请使用规范化设计,因为它可以优化避免数据冗余并防止异常,并支持最广泛的查询类型。