数据库设计 – Web应用程序中数据库设计的提示

有人对Web应用程序的数据库设计有任何提示/建议吗?当我正在处理的应用程序起飞并开始大量使用时,这种东西可以为我节省大量的时间/精力.

更具体一点,应用程序是一个策略游戏(基于浏览器,只是文本),主要涉及发布“订单”的玩家,这些订单将存储在数据库中并在以后处理,结果也存储在那里(历史记录) “订单”和相应的结果可能会变得相当大.

编辑添加更多详细信息(根据要求):

平台:Django

数据库引擎:我在想使用MySQL(除非使用另一个有很大的优势)

架构:我现在拥有的只是一些Django模型,这里发布的细节太多了.如果我开始发布模式,这变得太具体了,我正在寻找一般提示.例如,考虑我发布稍后将处理的“订单”并返回我必须存储的结果以显示某种“历史”.在这种情况下,最好是为“历史”设置一个单独的表,还是只聚合“订单”和结果?我想我可以缓存“历史”表,但这会占用数据库中更多的空间以及更多的数据库操作,因为我必须不断创建新行而不是仅仅在聚合表中更改它们.

最佳答案
您可能已经触及了一个更大的设计问题,即高可扩展性和性能.

从本质上讲,对于您的数据库设计,我会遵循良好的做法,例如将外键和索引添加到您希望经常使用的数据中,通过将数据拆分为较小的表来标准化您的数据,并确定要经常读取哪些数据以及哪些数据是经常写和优化.

比高性能Web应用程序的数据库设计更重要的是,您可以通过HTML页面缓存在客户端级别进行缓存,在服务器级别通过缓存数据或提供静态文件代替动态文件进行缓存.

关于缓存的好处是可以根据需要添加它,这样当你的应用程序确实起飞时,你就会相应地进化.

就您的历史数据而言,这是一个很好的缓存,因为您不希望它经常更改.如果您希望根据数据生成定期且相当密集的报告,那么最好将此数据放入另一个数据库,以免在运行时停止Web应用程序.

当然,除非您认为您的申请需要,否则这种优化确实没有必要.

转载注明原文:数据库设计 – Web应用程序中数据库设计的提示 - 代码日志