私たちのプロジェクトでは、JOIN をサポートし、エンティティの属性を簡単に追加および変更できる (スキーマレス/フリー) データベースが必要です。キーポイント:
- システムは顧客と連携するように設計されています (CRM)
- 基本エンティティ: ユーザー、顧客、ケース、ケース インタラクション、注文
- 現在、データベースには約 20 万件の顧客と約 25 万件の注文があります
- 顧客エンティティには、ほとんどの場合入力されていない 15 ~ 20 のオプション属性が含まれています
- 1日あたり約100件の新規感染者
- データはバックグラウンドで他の複数のソースと同期されます
要件 (優先度の高いものから低いものへ):
- リンクされた顧客名によるケースなど、関連エンティティによる検索/並べ替えを実装する機能 (JOIN をサポート)
- データのスキーマを柔軟に変更でき、多数の属性に対して NULL を格納しない
- パフォーマンス
- 変更の監視をサポートし、データベースへの変更のみを保存できる Python 用 ORM
私たちが試したこと:
- MongoDB はパラグラフ 1 を満たしていません。
- 1 つのテーブルにすべての属性を持つ PostgreSQL は、パラグラフ 2 を満たしません。
- 属性または EAV ごとに個別のテーブルを持つ PostgreSQL は、パラグラフ 3 (多くの遅い結合) を満たしていませんが、他のソリューションよりも優れているようです。
私たちのニーズを満たすデータベースまたはシステムの設計を提案できますか?