java - 硬编码区域、城市、国家字符串
问题描述
总共可能有多达 1000 个字符串。这些应该被硬编码还是存储在数据库中?这些经常被访问,因为每次用户想要注册或结帐项目时,他们都需要查看地区/郊区/省/国家/地区的列表。
如果我有一堆枚举,我认为性能应该很快,因为字符串的最大数量约为 1-2k max。
另一方面,如果我将它们存储在数据库中,访问数据库以及 cpu/内存消耗将会有延迟。
你选择哪个选项?
解决方案
这一切都取决于你。没有适当的约定。以下是3种方法以及它们的优缺点。
创建一个带有静态最终字符串变量的类。优点:一个。非常容易使用。湾。开发人员可以在 IDE 中进行查找。缺点:一个。每次您需要添加/删除某些内容时,都必须重新编译代码。但是,如果您有 ci-cd,这不会有太大问题。
在属性文件中添加所有内容并在运行时加载。优点:一个。修改东西将是轻而易举的事。无需重新编译代码。缺点:一个。这仍然需要重新部署并重新启动服务器。湾。开发人员会不高兴,因为他们不得不时不时地引用 txt 文件。如果开发人员使用属性文件中不存在的错误代码,这也可能导致错误。
使用数据库优点:高度可配置。湾。无需重新部署。缺点:一个。将需要重新启动服务。
如您所见,所有这些都需要重新启动服务,因为您肯定会在情况 2 和 3 中使用缓存。我的建议是使用第一个选项,如果它们实际上永远不会改变,因为它对开发人员非常友好.
推荐阅读
- r - 寻找一个 R 函数来为 csv 中的每一行创建一个单独的 txt 文件
- pandas - Pandas:按每个基本级别的最近日期过滤具有多索引的数据框
- c# - 当 DropDownList 的文本与值不匹配时,相似项将强制选择最顶部的相似项
- javascript - Redux:在没有它的情况下使用 compose() 或 applyMiddleware 之间的区别?
- node.js - Mongoose:是否可以对所有包含子字符串的 json 进行查询?
- c++ - 功能模板和缩写功能模板之间的等价关系
- java - 在对象列表上应用分组后如何获取对象而不是列表
- haskell - 在实例声明中访问类型变量值
- r - 如何查找不匹配或反向 str_extract_all 以在 R 中构造具有不匹配值的数据帧
- wordpress - Woocommerce / WP All Import:如果产品名称包含类别名称,则自动将产品添加到类别