2012-02-25 7 views
3

適切で参加するかどうかを判断するための最良の方法は何です。コメントのようなものについてはは、多型は、テーブルは私が多くの関係に多くのテーブルを結合する多型を作る必要があるかどうかを把握しようとしているか、私は複数のテーブルを結合するべきであるかどうかだ

、私はいつも多型結合テーブルを使用します。 Twitterでのように、ユーザー間の関係については、多態的な結合表は使用しません。これはちょうど習慣から外れています。決定のための親指の任意の良いルールは

ありますか?これらの間のテーブルで多くの関係:多くの関係2 1に委譲する必要があります。

+1

私は「多型結合テーブル」をGoogleで検索してレールへの参照をたくさん持っていますが、「SQL」として、これをタグ付けしました。 SQL文脈で "多形結合表"の意味を定義してください。ありがとう。 – onedaywhen

答えて

3

従来のデータベース設計は、多くのことを教えています。

M:M = 1:M、M:あなたが扱っているデータの量が膨大な場合を除き1

通常、それはあなたのデータベーススキーマを正規化するために最善のことができます - それはデカルト、更新異常を防止するのに役立ちますデータベースデザイナーが避けたいと思っているすべての厄介なものが含まれています。前記

、キンブルデータウェアハウス設計法は、時々、データがミニデータベースの種類にオフ「フレーク」するスターまたはスノーフレークスキーマを適用します。これは、データベース設計者がOLAPシステム(ビジネス分析)用に設計するもののタイプです。私が扱ってきた大規模なビジネスシステムのほとんどは、スノーフレークやスタースキーマで動作していることがわかっています。規模については、1GB以上を話しているので、Microsoft Accessのサイズを超えて巨大である必要はありません。

クイックリンク: データベースの正規化:http://en.wikipedia.org/wiki/Database_normalization

データベースの正規化(About.com):http://databases.about.com/od/specificproducts/a/normalization.htm

キンボールグループのデータウェアハウスのアーカイブ:http://www.kimballgroup.com/html/articles.html

キンボールアーカイブ方法についていくつかの良いガイドを持っていますいつ倉庫を作成するかを決定します。

編集:あなたはデータベース上の2つのテーブルを結合するために、テーブルを使用する必要がある場合を決定するためには、データベース・スキーマを開発することができます。これは、コーディングを開始する前にデザインをレイアウトする典型的な方法です。私のプログラムでは、データベーススキーマを開発することが大いに役立ちます。これは、データベース設計のコースの一部として教えられました。私は見ていくためにいくつかのリンクを追加しました。ここではStack Overflowでデータベース設計を見て、より大きなアイデアを得ることができます。具体的には、マイクロソフトのチュートリアルがあります。 Microsoft SQL Serverを使用していなくても、このチュートリアルは役立ちます。

データベーススキーマ:http://en.wikipedia.org/wiki/Database_schema

マイクロソフトのデータベース・スキーマのチュートリアル:http://msdn.microsoft.com/en-gb/express/bb403186.aspx

+0

スーパー便利です。 2つの異なる結合表を作成する時期と、同じ結合表を再利用する時期をどのように知っていますか。 – Cyrus

+1

"あなたの関係を正常化する - データのロックを防ぐのに役立ちます" - 私はあなたが正規化のプロセスを誤解しているかもしれないと思います。ヒント:特定の更新異常を避けるためにrelvars(「関係」ではなく)に適用されます( 'データロックが移植上の考慮のようになるのを防ぐのに役立ちます)。 – onedaywhen

+0

データベース・スキーマ設計について少し説明しました。これは、どのように/なぜ/別個の結合表を作成するかについての根本的な理由を説明しています。また、onedaywhenのコメントに応じてテキストを変更しました。通常、設計がシンプルになればなるほど、実際には別の結合表を再利用できる場合は、有効である必要があります。それは、私は本当にそれを運んでいたことはありませんでした。 –

関連する問題