2008-09-04 7 views
21

論文/書籍/その他を知っている人はいませんか?そのデータベースのパターンを文書化しますか?たとえば、すべてのテーブルにプライマリキーがあり、キーがdevoid of information contentである必要があります。だから、関係データベースを設計するための設計パターンに関する書籍や出版された論文を誰かが書いていたのかどうか疑問に思っていましたか?データベースパターン


@Gaius、データベース設計者が比較検討する必要があるという問題である

- データベース構造の推定安定性は何ですが?十分な地平線があれば何も安定していない。あるいは、十分に長い地平線が与えられていれば、すべてが変化する可能性があります。サロゲートキー(理論上)は決してその意味を変えるべきではありません。

私は、その特定の設計シナリオで考慮すべきことは、誰が主キーを見ることになるのでしょうか?プライマリキーがエンドユーザが実際に参照する必要があるものであれば、理解できるものにすることが理にかなっています。しかし、私は、エンドユーザが主キーを見る必要がある多くのケースを考えることはできません。通常、主キーは、DBエンジンが特定の操作を高速化できるようにするために存在します。

質問をする際の私の元々の考えは、経験豊富なデータベース設計者が自分よりもコード化したデータベース設計のパターンを見つけて、簡単に回避できるエラーを回避することでした。データベース設計のアンチパターンを誰かが公表したことがあれば、読書面白いだろう。

答えて

10

具体的には、キーに関して:キーが意味を持たないといけないという奇妙な考えに強く反対します。一般に、私はデータベースを事実の集合とみなします。任意の数字(生成されたキーなど)やその他の無関係な情報を追加するとすぐに、それは警告サインになります。キーの詳細についてはthis articly by Joe Celkoをお勧めします。

もっと一般的な注意事項:異なる企業のためのスキーマ設計/データモデルの

提案: デビッドC.ヘイ:データモデルパターン:思想 の表記はむしろ古いが、それは印刷ではまだだ理由はそこにあります
http://www.dorsethouse.com/books/dmp.html

パターンのようなそうでないかもしれない非常に、まだ非常に良い: ステファンFaroult、ピーター・ロブソン:http://oreilly.com/catalog/9780596008949/

SQL のアート私がお勧めすることができます

もう1: ヴァディムTropashko:SQLのデザインパターン - エキスパートガイドは、プログラミングSQLへ http://www.rampant-books.com/book_2006_1_sql_coding_styles.htm

データモデリングについて

体系的なテキストブック: グレアムSimsion &グラハムウィット、「データモデリングエッセンシャル」 http://www.elsevierdirect.com/product.jsp?isbn=9780126445510

「スタイルガイド」を実際に探していますか? Iその場合: ジョー・セルコ:SQLプログラミングスタイル http://www.elsevierdirect.com/product.jsp?isbn=9780120887972

+5

「自然な」キーを使用するリスクは、それらが変更できることです。サロゲートキーは変更できません。 Celkoの記事は価値の判断をしません。 http://stackoverflow.com/questions/159087/composite-primary-keys-versus-unique-object-id-field#159247 –

2

正確にはyesと答えてください。 「良い」データベース設計に書かれた情報の* *があります。あなたの経験則は確かに疑わしいですが。

4

E.F.CoddとC.J. Dateによる書籍が最も明白な答えです。私はこの特定の本を読んでいないが、私は著者に精通している、それはかなり可能性が高い。

Applied Mathmatics for Database Professionals Lexx de HaanおよびToon Koppelaars。

+0

明示的に名前を付ける必要はありませんでしたか? – brian

3

実は、私は、例えば、請求書テーブルとInvoiceDetailテーブルを持っている場合は、私たちができるよう

...親指のルールは自然キーではなく、代理可能な限りを使用することが一般的だと思いますおそらく最初のInvoiceNumberを主キーとして使用します。それは既に私たちのデータに存在しており、私は一意であると思います。 2番目のテーブルでは、代理キーを必要とするかもしれませんが、それがコンポジットとしてインボイス番号に結合されているかどうかは関係ありません。

元の質問に戻ってください... hometoastのリンクから始めましょう。

- ビジネス上の意味を持つ主キーを使用したケビンフェアチャイルド

+1

ナチュラルキーとサロゲートキーの使用の考え方は大きな議論です。多くの人が、代理キーを常に使用すべきだと主張します。 –

1

は(「自然キー」)確かにそのメリットを持っていますが、それは非常に困難なデータベースをリファクタリングすることができます。特に、データベース構造が時間とともに変化すると思われる理由がある場合は、注意してください。

2

SQL Anti-PatternsビルKarwinによっては、(乾燥していない)非常に読みやすく、かなり明確な面で異なる潜在的な落とし穴の数を説明し、あなたがそれらを使用して自分自身を見つけるかもしれない方法どのようにして/どうして正しいことをするのか。

+0

ポインタをありがとう。 –