过滤的最佳方法

问题描述 投票:0回答:1

我有一个实体列表(个人资料) 我有另一个实体列表(openapis)

每个openapi可以被多个配置文件指向

例如:openapis:“Alpha”,“Beta”

配置文件:配置文件 1 >“Alpha”配置文件 2 >“Alpha”配置文件 3 >“Beta”

我需要显示 openapis ["Alpha", "Beta"] 列表及其指向配置文件 例如:

“阿尔法”:配置文件1,配置文件2

“测试版”:配置文件3

我没有数据库,我使用“kebernetes”CR,最好的方法是什么? 我知道我可以过滤每个 openapi 的配置文件,但是有更好的方法吗?

javascript theory
1个回答
0
投票

鉴于您正在使用 Kubernetes 自定义资源 (CR) 并且没有传统数据库,您可能需要在应用程序逻辑中处理此关联。您可以考虑以下几种方法:

您可以维护内存中的数据结构来跟踪 openapi 和配置文件之间的关联。这可以使用 JavaScript 对象来完成,其中键是 openapis,值是关联配置文件的数组 每当您从 openapi 添加或删除配置文件时,都会相应地更新此数据结构。如果您的数据集不太大并且可以轻松放入内存,则此方法适合。

const associations = {
  "Alpha": ["profile1", "profile2"],
  "Beta": ["profile3"]
};

如果您的实体(配置文件和 openapi)表示为 Kubernetes 自定义资源,您可以使用标签将配置文件与 openapi 关联。标签是可以附加到 Kubernetes 资源的键值对。

例如,您可以添加如下标签:

apiVersion: yourapi.example.com/v1
kind: Profile
metadata:
  name: profile1
  labels:
    openapi: Alpha
---
apiVersion: yourapi.example.com/v1
kind: Profile
metadata:
  name: profile2
  labels:
    openapi: Alpha
---
apiVersion: yourapi.example.com/v1
kind: Profile
metadata:
  name: profile3
  labels:
    openapi: Beta

然后,您可以使用 Kubernetes API 查询来检索与特定 openapi 关联的配置文件。这种方法提供了一种更具声明性的方式来表示关联。

© www.soinside.com 2019 - 2024. All rights reserved.