当不支持继承时,如何处理MySQL中的多个值类型?

时间:2009-03-25 16:24:29

标签: sql mysql

我需要创建一个属性表,其中每个记录基本上只是一个名称 - 值对。问题是该值可以是字符串,整数或小数,我使用的MySQL不支持表继承。所以,问题是 - 我应该为每个值类型创建一个单独的表,还是应该创建str_value,int_value和dec_value列,并附加一个value_type列,告诉您使用哪种类型?这个表中不会有很多记录(少于100个),因此性能不应该是一个大问题,但我只是不想做出一个设计决定,这会使SQL变得比它更复杂。是。

3 个答案:

答案 0 :(得分:1)

在查询数据库时,无论列类型是什么,您都将始终收到字符串 - 因此没有理由在此处做出设计决策 - 只需将所有内容存储为字符串。

顺便说一句:拥有一个额外的value_type列是多余的 - 该条目具有唯一具有非null值的列的类型。

答案 1 :(得分:1)

拥有不同的表,甚至多个列,其中只有一个填充,将成为一场噩梦。将它们全部存储为varchar以及类型列。

答案 2 :(得分:0)

如果您为每种类型创建不同的列,那么无论如何您都必须在代码中明白它...

为什么不将所有内容存储为字符串并在代码中转换为所需的类型?