对于我来说,许多表是一种高效的数据库设计吗


Is many tables an efficient database design for my purposes?

我需要创建一个数据库来存储游戏角色所在地区以及他们是如何到达那里的详细信息。我计划将字符UUID存储为二进制(16)索引,区域名称存储为varchar(25),unix时间存储为int;其他领域还没有完全确定。

我还需要存储用户去过的每个地区的整个历史记录以及相同的细节。

当角色在区域之间移动时,该系统将同时处理来自多个来源(至少一百个)的传入数据。

大多数查询只想知道与角色相关的事情,但有些查询想知道为给定区域上传的最后一个代理。我打算将这些信息存储在单独的表格中。

一位同事认为,对我来说,为每个地区使用一个表格会更有效率,但我很担心,因为我认为通常不会这样做。

因此,基本上,我想知道的是,在我的情况下,按照他所说的那样,为每个地区使用单独的表格是否更有效。

我会使用一个表,每个区域有一个表意味着任何扩展都需要新的表,这反过来意味着需要更多的编码。每个实体类型有一个表,只需在数据库中插入或删除行,就可以添加和删除许多区域。

很好地为每个区域创建一个表可能会更高效,但这会在设计和实现方面引起头痛。

现在,对于每个区域,它必须对所引用的表名进行编码,而不仅仅是使用外键(区域的ID)。类似地,对于以后决定添加的每个区域(扩展等),都需要添加新代码和新表,以便与基本相同的操作交互。

只有当你确定这是一个瓶颈时,我才会这么做。这种规模的预优化通常是错误的。毕竟,采用良好的、规范化的设计并使其更加特定于领域是很容易的,但反过来就更难了。

相关文章: