Alb*_*gni 5 language-agnostic database-design
我将使用jQuery插件为用户呈现一个漂亮的界面
要求显示5颗星,总分为10(每星2分).
到现在7/10
为止,我考虑过使用该值作为格式,但如果在将来的某个时候我会收到类似的请求
我们想给用户更多选择,让我们将总分增加到20(这样每颗星最多贡献4分)
我最终会得到一张表格,其中包含"星级"栏目的混合值:有些7/10
人会像其他人一样14/20
.
您是否可以在数据库中具有这种差异并在逻辑层中处理它以使其保持一致?或者是另一种方式,以便查询表不会导致应用程序外的结果不一致?
也许浮点值可以帮助我,将该值存储为小于或等于1的数字是否更好?因此,在两个示例中的每一个中,存储在数据库中的结果值将0,7
作为数字而不是varchar,也可以在应用程序之外查询.
你怎么看?
有三种选择:
第一个选项是最便携的,因为评级的最大值和表示完全是客户端(就数据库而言是客户端,而不是客户端,就像在用户的机器上完成的那样).
第二个似乎是任意复杂的,除非你希望继续显示7/10评级作为7星与10星而不是14星与20星.
第三个需要最少的前期工作,但是当对评级量表进行更改时需要大量的数据库更新.
只是重申,我建议存储值作为float
或double
在数据库和应用无论是规模在客户端相应..
KISS
只需存储点数并具有应用逻辑以在IU中的星星中表示它.
如果将来需求发生变化,您将调整逻辑并根据需要运行转换脚本.就这样.
我会将它存储为100个单位的简单整数.这样,如果您希望将来提高评级的准确性,您就可以拥有足够的粒度.无需更改任何现有存储值.