我正致力于为城市建设游戏构建数据库,类似于simcity。一切都很顺利,除了与物品和生产过程相关的表格。
现在项目是在工厂生产的,每个工厂都有许多生产单位,从2或3开始,当工厂升级时可以增加......每个生产单位应该有三种状态之一(1 - 2) - 忙碌3)。我想要制作的是一张表格,用于保存这些生产单位的状态以及正在生产的产品/物品。我没有在数据库中保存这些工厂的元数据。
我想到的是具有列的productionunit_user表(非工厂用户):UserID,pu_id,PU-status,p_starttime,...... 但最终这会变得很大,因为每个用户可能拥有多达200个生产单位。
我的问题是:在数据库中表示此项目生产数据的最佳方式是什么。
答案 0 :(得分:1)
很难具体说明这一点 - 但只要您通过索引列访问此表,您的设计就可以轻松扩展到数十万或数百万用户。
我猜你最常见的查询是这样的:
select *
from productionunit_user
where UserID = ?
只要你有一个UserID的索引,那就应该在一个体积适中的服务器上超大行数(数十或数亿)。
但是,如果您预计不能使用索引的查询 - 字符串比较,日期或数量的复杂算术 - 您可能具有可伸缩性问题。