简单的数据库设计足以满足很多用户的需求

时间:2013-01-31 18:38:55

标签: database-design

我正处于建立赛车游戏的设计阶段。每个用户最多可以拥有100辆汽车,每辆汽车的数据都存储在我的汽车表中的记录中。表中的字段包括:

<car_id, user_id, top_speed, colour, handling, acceleration ...>

- user_id是映射到汽车所有者的外键。

我的问题:这个简单的设计是否可以将我所有用户的汽车存储在一个表中?让我们说该应用程序是成功的,有大约10,000个用户,每个拥有100辆汽车。这将是我的车牌表中的1,000,000条记录。这是性能方面的问题吗?我可以通过数据库的设计来帮助提高性能吗?

最后,我打算使用MySQL作为我的DBMS。

2 个答案:

答案 0 :(得分:1)

将其保存在同一张表中。

除非您有specific reason for a surrogate key,否则请将关系标识为......

enter image description here

...以及cluster生成的自然键car上的{user_id, car_no}表。这样,属于同一用户的汽车将在数据库中一起存储物理关闭,并且可以非常快速地回答诸如“给我给定用户的汽车”的查询。


最重要的是,考虑一下你是否真的需要1:N关系(而不是M:N)。用户是否会共享汽车(或者至少是汽车的“常见方面”)?

答案 1 :(得分:0)

如果您打算按用户进行大量汽车查询,请向user_id添加索引。除此之外,没有更清晰的方法来优化这种设计。