我正在开发一个项目,帮助管理员将应用程序基础设施信息存储在一个地方。 在规划阶段,我面临着如何以最佳方式存储和处理一些组件信息的问题。
例如,管理员可以创建一个应用程序并向其中添加一些服务,例如(Web 应用程序、Lambda、Win 服务等)。管理员可以为每个服务分配不同类型的组件:
我想创建一个名为 Components 的表,其中包含 Id、ServiceId、Data、Type 等列,并将所有组件相关数据以 JSON 格式存储在 Data 字段中,转换为 Base64,并在每次需要时对其进行序列化/反序列化。 关键想法是我稍后将扩展应用程序,并希望能够轻松添加新组件而无需修改核心代码。
您能建议一些好的方法来实现所需的应用程序行为吗?
提前致谢。
您使用 json 数据的方法已经非常可扩展。为 json 数据创建一个多态处理程序就足够了。添加新组件只需要一个新的处理程序,而无需更改数据库和其余基础设施。
但是,最好不要将 json 存储在 base64 中,而是存储在专门设计的类型中,例如 postgres jsonb。它更高效且更易于操作。
此设计可能会出现 3 个小问题。