【发布时间】:2018-07-09 23:52:17
【问题描述】:
假设我正在创建一个用户界面,用户可以在其中选择他们最喜欢的口袋妖怪:Bulbasaur、Squirtle、Charmander 等。
在我的数据库中,我有一个可能选项的查找表:
pokemon
---
id name
1 Bulbasaur
2 Squirtle
3 Charmander
...
在我的 UI 中,我应该每次都获取此列表还是简单地对其进行硬编码以便用户可以从中进行选择?在 UI 中,这样的事情看起来像是立即出现,但如果在添加更多选项时,您只需在一个地方(数据库)更新它,而不用担心也更新界面?
【问题讨论】:
-
如果您知道要添加更多口袋妖怪,请从数据库中获取它们而不是硬编码。
-
您可以通过适当的缓存来减少数据库访问次数。有很多缓存选项,如果您可以让我们知道更新频率、UI 等,也许我们可以提出一个明智的解决方案。此外,如果它是 Web 应用、移动应用或桌面应用等,策略可能会有所不同。
-
@Colin 很可能会添加更多口袋妖怪,因为每隔几年就会创建新的口袋妖怪!
-
@TheLyrist 好点,我将实现缓存,例如Redis/Memcached 用于这样的事情。更新频率将是“每当有人决定要更改他们最喜欢的新口袋妖怪时”,并且 UI 只是用户配置文件中的一个部分 > 单击编辑按钮 > 显示选项列表 > 选择并保存。好奇为什么策略会因应用类型而异?顺便说一句,这是一个移动应用程序。
-
@kayla 对不起,我不熟悉移动开发,所以如果我没有任何意义,请原谅我。对于网络,根据您预期的更新频率,您可以使用不同的缓存过期设置,使用 CDN 等。对于移动和桌面,我假设会有更多的本地缓存选项?我认为许多移动应用程序仅在启动时检查更新的材料,并将列表存储在本地等?
标签: javascript sql node.js reactjs