私は多くのオブジェクトを持っていますが、それぞれ異なる種類の属性を持つことができます。多くの属性が重複しています。たとえば、多くのオブジェクトには属性「名前」があります。 オブジェクトの種類が多いため、同じ属性セットのオブジェクトセットごとにテーブルが構築されていると、多くのテーブルが必要になります。データベースにオブジェクトを格納
現在、私はmysqlを使用しており、この方法で保存されています。
object_id|attribute_id|data
このようなテーブルがいくつかありますが、それぞれ異なるテーブルには異なるデータタイプがあります。 たとえば、Integerテーブルでは、整数のみを格納します。
したがって、すべての種類のオブジェクトをシステムに格納できます。属性のデータに従ってフィルタリングと並べ替えを実行することもできます。それはクエリを少し複雑にし、効率的だとは思わない。
これはmysqlや他のリレーショナルデータベースで行う方法ですか? この問題の他のデータベースモデルを探すべきですか?私はいくつかの研究をした
EDIT 、私がSQLのパワーとドキュメント指向データベースである必要があるものと思われます。
MongoDBのもう一つの利点は、あなたの状況に直接当てはまると聞こえますが、1つのコレクション(MySQLのテーブルに似ています)で類似しているが同一ではないオブジェクトのすべてを持つことができるということです。 Doctrineのような良いORMを使用すると、データベースからオブジェクトをロードする際に、オブジェクトのタイプを自動的に区別し、PHPの正しいオブジェクトに変換することさえできます。あなたが使用している言語はわかりませんが、PHPでなければ似たようなものがあるはずです。 – cjroth