このビジネスモデルを 3 種類のデータ (RMDB の 3 つのテーブルのように) に分けることをお勧めします。
1 つはクライアントエンティティで、エンティティを json にシリアル化し、クライアント ID をキーとして (接頭辞 "client_" を付けて) 格納します。"client_1"、"client_2" のように、リレーション製品はクライアント エンティティに格納されません。サンプルデータ:client_1 => {clientId: 1, clientName: "name"}
2 番目はProductエンティティです。クライアント プロパティを clientId に変更します。クライアントと同じようにシリアル化して保存します。サンプルデータ:product_1 => {productId: 1, productName: "book"}
3 つ目はRelationで、「client_product_1」、「client_product_2」などのように、クライアント Id をキーとして (プレフィックス「client_product_」を使用して) 使用します。その製品のすべてのクライアント Id を文字列に分解します。サンプルデータ:client_product_1 => 1,2,3,4,5
ただし、「関係」(リスト、セット、ハッシュマップ) を格納するように設計されたデータベースを使用する場合は、SSDB ( https://github.com/ideawu/ssdb ) を試してください。SSDB は LevelDB のネットワーク ラッパーです。コレクションデータの保存に適しています。