sql >> データベース >  >> RDS >> Mysql

データベース設計では、1つのテーブルを作成して、いくつかの種類の再帰ポインターをポイントします。

    これは潜在的に大規模なデータベーススキーマであるため、筋骨格系に焦点を当てます。ただし、その前に、データベースの正規化の重要性について説明する必要があります。それは重要です!そして多くの理由で。主に、適切で正規化されたデータベースを設計することにより、データの整合性と信頼性を確保しながら、将来の問題を回避できます。 「このデータベースはどのように成長するのか」、「システム、ビュー、または配布パターンをさらに追加する必要がある場合はどうなるか」などを常に念頭に置いてください。簡単な概要はここで読むことができます: http://databases.about.com/ od / specificproducts / a / normalization.htm

    データベース設計へ:

    冗長な列と、他の列のサブセットである列をテーブルから外して独自の列に保持する必要があります。たとえば、リンパ節の表を見てください。今から1年後に、別のリンパ節を追加する必要があることに気付いた場合はどうなりますか?または1つ削除しますか?または、クライアントから1つのノードのみを表示している場合はどうなりますか?それを自分のやり方で行う代わりに、テーブルを、PatientやLymph Systemsのような大きなオブジェクト(医者ではないので、答えが何であるかわからない)に結び付けます。または両方。例:

    患者には多くのシステムがあります(患者テーブルとシステムテーブルの間の1対多の関係)リンパシステムには多くの臓器があります(リンパシステムと臓器の間の1対多の関係)システムまたは臓器には多くのテストがあります(1対多の関係船システムとテストの間)。

    例:

    このテーブルには、個々の患者に関するデータのみを含める必要があります

    このテーブルには、すべてのシステムに固有の列のみが含まれている必要があります。システムには、リンパ系、呼吸器系、排泄系などがあります。

    TablePatient_TableSystems

    多対多の関係を持つことはできません。このテーブルはそれを解決します。これがなかった場合は、患者/システムごとに各テーブルに冗長なレコードを保持する必要があります

    システムと臓器の多対多を解決します

    今テストのために。テストは臓器またはシステムに固有ですか?または両方?この例では両方とも言います

    TableTest

    ここにはたくさんあるので、ここは立ち止まるのに良い場所だと思います。データの正規化を読み、質問がある場合は、ここに投稿してください(またはメッセージを送ってください)。



    1. 外部キー制約を無効にしても、テーブルを切り捨てることはできませんか? (SQL Server 2005)

    2. 行をコピーして列の小さなサブセットを変更しますか?

    3. シンボルに遭遇=

    4. ZendFrameworkとMysql-非常に遅い