Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database design 简单的数据库设计对于很多用户来说已经足够好了_Database Design - Fatal编程技术网

Database design 简单的数据库设计对于很多用户来说已经足够好了

Database design 简单的数据库设计对于很多用户来说已经足够好了,database-design,Database Design,我正在设计一款赛车游戏。每个用户最多可以拥有100辆车,其中每辆车的数据存储在我的车表中的一个记录中。表中的字段包括: <car_id, user_id, top_speed, colour, handling, acceleration ...> -其中,用户id是映射到车主的外键 我的问题:这个简单的设计可以将我所有用户的汽车存储在一个表中吗?假设该应用程序成功,拥有约10000名用户,每人拥有100辆汽车。在我的汽车表中有1000000条记录。这是性能方面的问题吗?我可以

我正在设计一款赛车游戏。每个用户最多可以拥有100辆车,其中每辆车的数据存储在我的车表中的一个记录中。表中的字段包括:

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

-其中,用户id是映射到车主的外键

我的问题:这个简单的设计可以将我所有用户的汽车存储在一个表中吗?假设该应用程序成功,拥有约10000名用户,每人拥有100辆汽车。在我的汽车表中有1000000条记录。这是性能方面的问题吗?我可以通过数据库的设计来提高性能吗


最后,我计划使用MySQL作为我的DBMS

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

将其放在同一张表中

除非你有一个朋友,否则就让你的关系

…以及生成的自然键
{user\u id,car\u no}
上的
car
表。通过这种方式,属于同一用户的汽车将被存储在数据库中物理上靠近,并且可以非常快速地回答诸如“给我给定用户的汽车”之类的查询



P>以上,考虑你是否真的需要1:N关系(而不是M:N)。用户是否会分享汽车(或者至少分享汽车的一些“共同方面”)

是的。没关系。只要确保你有好的索引,我会给它添加索引。假设你有id为
0
100
的汽车。车号为#5的每名球员的规格是否相同?因为在这种情况下,您可以为所有用户创建一个cars表,并从用户表链接到car表。@JakeParis,这是什么意思?在Car表中找到的每条记录都有一个主键,用Car_id表示。@JakeParis不,我计划通过调整使它们可以自定义,等等。如果你有相同规格的车,你实际上可以有一个映射表。他说用户将“拥有”这辆车。如果用户没有编辑汽车规格,我只会使用映射/联接表。如果用户编辑汽车,他们将被分配到具有这些规格的记录。为什么要复制数据?那么@njk,你是说创建一个包含每辆车可能拥有的所有规格组合的表?@Goaler444这当然是一个可行的选择;如果它小于所有用户的单个规格,并且不复制数据。