首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >静态数据-数据库或代码

静态数据-数据库或代码
EN

Software Engineering用户
提问于 2021-01-15 19:25:43
回答 4查看 364关注 0票数 5

我从事中小型、数据库驱动、业务应用等领域的工作。我通常发现,特别是在较旧的系统中,大多数数据都存在于数据库中。我所说的数据指的是一些东西,比如CountryTable、ZipCodeTable、很多/一张大的下拉列表。

最近我继承了一个项目,其中客户端有一个复杂的嵌套层次数据结构,包括模块、类别、子模块、设置、配置等,但是数据是完全静态的。我们只是需要它这样我们就可以..。把所有东西都放在它该放的地方。现在大约有7个复杂的ef核心实体与关系。前一个团队和客户端组成了一个完整的迷你标记语言,并为它编写了一个解析器。

这是静态(Ish),基本数据。它被用来描述系统。

如果在我的系统中某个地方有优先级级别,我需要在某个地方描述它。我要说的是“低、中、高的存在”。我经常看到的应用程序,在数据库中这样做。

总的来说,我越来越远离对数据库的关注。我只需要用代码来定义它。为什么需要种子的PriorityEntity和PrioritiesTable只会说“请给我一个所有优先事项的清单”?我只想用代码来定义列表。

对于更复杂的静态数据(比如我的模块),由于对象关系不匹配,您可能会得到额外的类型和映射代码。

但是如果它真的改变了呢?你永远也不知道,邮编一直在消失

人们在标记或代码中描述类似于菜单结构的东西没有什么问题。如果需要更改,开发人员只需调整代码并推送更新。

我在自言自语,但我确实有个问题。有什么理由反对我没想过吗?有我描述的名字吗?我觉得应该有。

EN

回答 4

Software Engineering用户

发布于 2021-01-15 19:40:17

以优先事项为例:

  1. 将优先级放在数据库中意味着您有一个真理的单一来源。多个程序可以使用相同的数据库,并且在所有应用程序中优先级的使用将保持一致。
  2. 优先顺序的定义位置与您引用的位置相同(在其他表中),最好是在这些表之间定义关系。这为下一个必须查看数据库设计的程序员提供了文档和数据验证。
  3. 您可以将优先顺序表加入到查询中的其他表中,并获得适当的输出。如果优先程序被锁在前端应用程序中,则不能这样做。
  4. 如果性能是一个问题,则始终可以在前端应用程序中缓存优先级列表。
票数 5
EN

Software Engineering用户

发布于 2021-01-15 19:33:46

直接在代码中定义此类数据意味着,如果“静态”数据确实需要更改,则需要重新编译应用程序。这也增加了与其他系统共享数据的难度。

票数 4
EN

Software Engineering用户

发布于 2021-01-15 19:41:09

我会用一个物体来做这个。

您说过数据不会更改,所以您可以轻松地将其存储在应用程序中。数据库将被过度杀死并增加其大小。XML文件也会有点过火,而且还会增加大小。

因此,在我看来,最好的选择是一个枚举或物体。

票数 0
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/421104

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档