![]() |
2
8
有三种选择:
第一个选项是最可移植的,因为评级的最大值和表示完全是客户端的(就数据库而言,是客户端的,而不是用户机器上的客户端)。 第二个看起来是任意复杂的,除非你想继续显示7/10的评级为7星10星,而不是14星20星。 第三个需要最少的前期工作,但当对评级尺度进行更改时,需要大量的数据库更新。
只是重申一下,
我建议将值存储为
|
![]() |
3
5
我将它存储为一个简单的整数,以100为单位。这样,您就有了足够的粒度,以防将来想要提高评级的准确性。也不需要更改任何现有的存储值。 |
![]() |
4
0
我将使用两列:一列保持评级,一列保持最大评级。因为这个最大值在将来可能会改变,所以我将把它和其余的数据放在同一行中。您可以使用短整数,因此所需的空间量非常小,即使行数很大。 |
![]() |
5
0
我建议您将分数存储为简单整数-如果评分为7/10,请将“7”存储在数据库中。如果您随后需要将其更改为20点的比例,只需运行更新查询,将所有现有数字翻倍即可。如果需要更高的精度,可以使用浮动,但对于大多数分级系统,整数应该是好的。 |
![]() |
6
0
我喜欢浮动的想法,但没有一个选择是显著突出的。我只建议,无论您选择什么机制,都要确保列的名称是正确的。
浮动选项应该类似于
(我以前见过列名说“percent”,但数据只是一个简单的比率。这让我晚上睡不着!) |
![]() |
developer · 带外键的SQL表设计 6 月前 |
![]() |
relatively_random · 确保两个表之间一致的共同参考 7 月前 |
![]() |
b126 · 在两种不同的Oracle模式上执行相同查询的速度差异很大 1 年前 |
![]() |
robertspierre · 在多对多关系中自动删除未引用的行 1 年前 |
![]() |
Michael Samuel · MYSQL在以下情况下自动创建索引 7 年前 |