1

我有一个接受string值、 abool或 a的对象属性float

当用户调用重载方法来设置属性的值时,我选择将其实现为字符串值以及系统自动设置的类型setValue(float)setValue(bool)或者setValue(String)

在数据库中,我只有一列代表该值。我也保存类型。

您会推荐什么替代解决方案?我不想创建 *boolean_value*、*float_value*、*string_value* 属性来适应我可能面临的不同情况。

4

2 回答 2

3

我认为这三个值在概念上是不同的。
如果我遇到问题,我将在数据库级别拥有三个不同的字段。
关于1NF ( each attribute contains only atomic values, and the value of each attribute contains only a single value from that domain.)迟早
您将需要计算浮点值或比较布尔值,将它们分开会有很大帮助,数据模块将是说明性的。

于 2013-09-21T07:32:36.003 回答
2

应该只有一个真值;使用最小公分母将此值存储在数据库中,但仍满足所有可能的值(例如,如果该值是“真”与“假”,则使用布尔值)。在应用层执行类型杂耍。了解单一真相理论可能有助于您的设计决策。

如果您出于缓存目的将其存储在数据库中,那么存储所有 3 种类型更有意义 - 如果性能为王,则浪费循环转换毫无意义。

于 2013-09-20T22:48:09.363 回答