有四个地区的总记录超过一百万。我应该为每个区域创建一个包含区域列或表格的表格,并将它们组合起来以获得最高排名吗?
如果我将所有四个区域组合在一起,则我的所有列都不会是唯一的,因此我还需要为我的主键添加id
列。否则,name
,accountId
& characterId
将是候选键,或者我应该只添加id
列。
Table:
----------------------------------------------------------------
| name | accountId | iconId | level | characterId | updateDate |
----------------------------------------------------------------
修改
我应该考虑按region_id
划分表格吗?
答案 0 :(得分:0)
因为所有记录都与特定区域相关,所以包含regionId和其他属性的3NF(例如All-Regions)中的单个数据库表应该有效。
答案 1 :(得分:0)
与数据库设计一样,正确的答案是“取决于”。
首先,(恕我直言)一个好的主键应该属于数据库,而不是用户:)
因此,如果accountId
和characterId
是用户可编辑的或显着地显示给用户,则不应将它们用于表的主键。使用name
(或任何其他用户生成的字符串)作为密钥只是要求麻烦。
对于地区,尝试分析记录的使用方式。
最重要的是,这两种方法都可行,让您的数据告诉您哪种方法更易于管理。