我有几个场景,我需要存储无限值(或最大值,无论你喜欢什么称呼它),这对业务没有任何限制。
我考虑过几个选项:
使字段为Nullable,并使用DB NULL表示此类情况。但问题是我必须在任何需要进行比较或显示它的地方检查它。
使用给定类型的实际最大值(例如,整数,我可以使用最大的Int32值),但这需要在DB级别进行一些调整 - 我必须在字段中写一个约束(因为我可以使用固定长度的十进制或整数数据库类型来限制最大值,它也可能没有任何意义。
使用预定义的大值(可能对业务有意义)来表示它并将其存储在数据库级别,同样,我必须向数据库字段写一个约束。
之前我已经使用过所有这些场景,并且所有这些都不是太糟糕,但是你知道,处理某些特定情况会很痛苦。
我的问题有点宽泛:你们对此有什么建议?有哪些好的/最好的做法?
任何帮助/建议表示赞赏。
答案 0 :(得分:1)
我认为将其存储为单独的列IsXyzUnlimited
可能是一种很好的替代做法。
由于它并不意味着null,因此最好将其表示为null。正如您所提到的,在调用它之前还存在检查它的问题。
另外,正如您所提到的,其他2个值可能具有商业意义。如果您希望数据能够自我揭示有关业务的信息,请明确说“嘿,如果选中此框,则无限制”。没有神奇的价值。