導入
EAV(Entity-Attribute-Value)データベースの設計哲学は、データをエンティティに関連付けた属性値のペアのセットとして保存することです。このモデルは、特に履歴データを処理する場合、データストレージとクエリに柔軟性があります。ただし、従来のEAV設計は、データの整合性、レポート生成、パフォーマンスの課題に直面することがよくあります。
一般的なEAV欠陥を解決
これらの欠点を克服するために、属性タイプに従って異なるエンティティ属性を分離することを検討することができます。この方法には次の利点があります:
例リレーショナルデータベース管理システム(RDBMS)スキーマ設計
]次のRDBMSパターンデザインは、このアプローチを実装する方法を示しています。
entity_type:ストレージエンティティタイプ(たとえば、 "product"、 "user") エンティティ:はメインエンティティテーブルを表します attr:エンティティと関連する属性 オプション:属性値ペアを保存するオプション attr_option:属性値のペアへのリンクオプション attr_int: integer属性値を保存します attr_relation:は他のエンティティとの関係を保存します attr_datetime: store日付と時刻属性値 attr_string: string string属性値 attr_text:はテキスト属性値を保存します attr_decimal: decimal属性値を保存する
このモードにより、属性値が変更されるたびに新しい属性値ペアを挿入することにより、履歴データを保存できます。
提案方法の利点 ]
潜在的な問題
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3