在DB中存储Unlimited / Max值的最佳实践

时间:2013-12-17 04:12:24

标签: c# sql vb.net

我有几个场景,我需要存储无限值(或最大值,无论你喜欢什么称呼它),这对业务没有任何限制。

我考虑过几个选项:

  • 使字段为Nullable,并使用DB NULL表示此类情况。但问题是我必须在任何需要进行比较或显示它的地方检查它。

  • 使用给定类型的实际最大值(例如,整数,我可以使用最大的Int32值),但这需要在DB级别进行一些调整 - 我必须在字段中写一个约束(因为我可以使用固定长度的十进制或整数数据库类型来限制最大值,它也可能没有任何意义。

  • 使用预定义的大值(可能对业务有意义)来表示它并将其存储在数据库级别,同样,我必须向数据库字段写一个约束。

之前我已经使用过所有这些场景,并且所有这些都不是太糟糕,但是你知道,处理某些特定情况会很痛苦。

我的问题有点宽泛:你们对此有什么建议?有哪些好的/最好的做法?

任何帮助/建议表示赞赏。

1 个答案:

答案 0 :(得分:1)

我认为将其存储为单独的列IsXyzUnlimited可能是一种很好的替代做法。

由于它并不意味着null,因此最好将其表示为null。正如您所提到的,在调用它之前还存在检查它的问题。

另外,正如您所提到的,其他2个值可能具有商业意义。如果您希望数据能够自我揭示有关业务的信息,请明确说“嘿,如果选中此框,则无限制”。没有神奇的价值。