0

情况

我现在正试图找出一个评级系统,其中包含玩家对服务器的评级。用户将能够在几个不同的类别中对服务器进行评分。评级存储的可维护性、性能和紧凑性是我现在试图找到的平衡点。希望我们能想出一些好的解决方案来解决这个问题。

所需 MB =(每个条目的字节数)x(500 条评论)x(4000 台服务器)/(1024)/(1024)

方法1:可维护的桥表 允许存储任意数量的类别,搜索很容易,类别允许具有在自己的表中指定的附加属性。将需要 64 个不同的条目才能等效于其他方法的持有力。

[int Server_ID 4 字节]

[int Account_ID 4 字节]

[int 等级 2 字节]

[bigint last_updated 8 字节]

[int category_id 4 字节]

所需总空间:2929.7 mb。

在此处输入图像描述

方法 2:SET 列 如果存储的类别少于 64 个,我可以有一个SET 列作为位标志表。

[int Server_ID 4 字节]

[int Account_ID 4 字节]

[SET 等级 8 字节](可能更少)

[bigint last_updated 8 字节]

所需总空间:45.77mb。

设置方法

方法 3:多个位列 我可以只使用一堆不同的位列,上面有名称。在实际应用中显示类别时,可能会使用注释来提取类别的描述。

[int Server_ID 4 字节]

[int Account_ID 4 字节]

【多比特率:8字节???字节]

[bigint last_updated 8 字节]

所需的总空间???:45.77mb。

在此处输入图像描述

4

1 回答 1

0

如果您希望将广泛的属性应用于每个评级类别,请使用桥接表方法。桥接表将是三个选项中最易于维护的选项。肯定是别人最容易理解的。如果空间无关紧要,并且您不怀疑该表会增长到 128,000,000 个条目,请尝试使用桥接表。

如果您知道您永远不需要超过 64 个类别,或者如果数据空间存储是一个高度关注的问题,请使用 SET 方法。

在此处输入图像描述

于 2014-03-11T17:50:31.683 回答