2011-11-14 1 views
0

私はビジネスのリストを持っており、各ビジネスはいくつのカテゴリにも属しています。だから、私が普通にやっているのは、テーブル 'ビジネス'とテーブル 'カテゴリ'とビジネスとカテゴリのIDを持つ 'ビジネスカテゴリ'テーブルなので、ビジネスは任意の数のカテゴリにリンクすることができます。私のmysqlテーブルを正しく構成する

しかし、私はビジネスを任意の数のカテゴリに割り当てるもっと簡単な方法があるのだろうかと思いました。可能な場合はわずか1つのまたは2のテーブルにすべてを維持することは華麗だろう...

おかげ

答えて

4

いいえ、それは華麗ではないでしょう。元のアプローチは正しいです。

キーワードは「正規化」です。独自のアプローチでは、データの正規化モデルが提示されます。

テーブルが多数あることを心配しないでください。テーブルは、情報の論理構造に対応する必要があります。

は、返信用

+0

おかげで(必要であれば、しかし、あなたは列挙型ではなく、カテゴリテーブルでデータを有界しかし、それはマイナーな決断だと表現することができます。) - 私は完全に良い推論を理解したbehnind正規化されたデータベースしかし、上記のようなことを考えた理由は、私のクライアントが1つのCSVファイルをExcelから出力し、それをPHP/MySQLにダンプし、さらに検索/アクションが可能なデータベースを作りたいからです完了しました。私は正規化された方法に固執する必要がありますか? – rav

+0

クライアントのExcelデータが不良な論理状態にある場合は、そのためにデータベース設計を妥協しないでください。むしろ、適切なインポート/エクスポートロジックを作成する必要があります(エクスポートはクエリを使用して簡単に行う必要があります)。それはあなたの呼び出しですが、通常、データベースの設計はデータの論理構造によって決定されるべきであり、その他のものはそこから続くべきです。 –

+0

あなたのアドバイスをいただきありがとうございます。最終的な質問は、CSVファイルから正規化されたデータをどのように設定するのですか? 3つの別々のテーブルに3つの別々のCSVファイルが必要ですか? – rav

関連する問題