0

私は、eBay/amazon/sears/rakutenのためのeコマースマルチチャンネル一覧表示ツールを構築しています...複数のエンティティを1つのテーブルに格納する際のmysqlの非正規化?

各エンティティにはそれぞれ独自のプロパティがあります。例えば、eBayにはebayItemId/Title/priceがありますが、amazonにはasinNumber/Title/LowestPriceのようなものがあります。

私はそれぞれ独自のテーブルに持っていなければなりません。または1つのテーブルに複数のエンティティを混在させる必要があります。列ヘッダーには市場に基づいて異なるデータを格納できますが、多くの列にはNULL値が含まれることがあります。

これは良いアプローチだと思いますか、複数のエンティティに正規化する方が良いですか?

答えて

1

どのタイプの非正規化を評価するかは、回答する必要があるクエリから始め、データを整理してクエリに役立てることです。

クエリを考慮せずに最適なテーブル構造を見つけることができません。ご利用の場合の例ソリューションの

、それは完全に正規化されたスキーマを持っているのがベストですhttps://stackoverflow.com/a/695860/20860

+0

私は親エンティティを持っています。これは基本的に写真といくつかの基本的な性質を持つアイテムです。子供たちはこれらの市場のリストになります。私はクエリが集中的に書くと思います。また、子供たちを1つのテーブルから引っ張ってループし、市場の旗に基づいて特定のビューを表示する方がずっと簡単だと思います。 –

+0

さて、幸運! –

0

に私の答えを参照してください。すべてがより簡単で一貫性があります。

異なるの正規化がもたらす利点である「パフォーマンス」についてのみ非正規化を行います。だから、ビュー、またはその目的のための特別なテーブル、または別のNoSQLデータベースなどを介して非正規化することが最善です。

正しい正規化されたデータベースを真実のソースにします。

真理値の源から非正規化データを取り込み/取得し、高速で使用する読み取り専用操作。どのように2つを結びつけるかは実装の詳細です。デザインの実装方法に応じて多くのオプションがあります。

関連する問題