ホームページ >データベース >mysql チュートリアル >メモのサブタイプまたは個別のテーブル: どのデータベース設計が最適ですか?

メモのサブタイプまたは個別のテーブル: どのデータベース設計が最適ですか?

Susan Sarandon
Susan Sarandonオリジナル
2025-01-05 14:55:42628ブラウズ

Sub-Type or Separate Tables for Notes:  Which Database Design is Best?

データベース設計のメモにサブタイプまたは個別のテーブルを使用する

データベースを設計するときに、サブタイプを使用する必要があるというよくある質問が生じます。単一のテーブル内で使用する必要がありますか、それとも異なるタイプのデータに対して別のテーブルを作成する必要がありますか?この場合、BOOKS、ARTICLES、NOTES という 3 つの主要なテーブルを含むデータベースがあります。当初は、書籍と記事の両方のメモを保存するために 1 つの NOTES テーブルが使用されていました。ただし、この設計の正規化と効率について懸念が生じています。

代替アプローチとして考えられるのは、BOOKS、ARTICLES、NOTES、BOOK_NOTES、ARTICLE_NOTES の 5 つのテーブルを使用することです。この構造により、NOTES テーブルの列定義がより単純になり、書籍メモと記事メモを個別に保存できるようになります。

サブタイプを使用するか個別のテーブルを使用するかの決定は、データの特定の性質によって異なります。サブタイプは通常、サブタイプに固有の別個の列がある場合に使用されます。ただし、この場合、BOOK_NOTES テーブルと ARTICLE_NOTES テーブルの構造は大きく異なりません。

より最適なアプローチとしては、Book と Article をサブタイプとしてスーパータイプ テーブル Publication を作成することが考えられます。これにより、Publication への外部キーを持つ単一の NOTE テーブルが可能になります。 Publication の主キーは Book (または Article) の主キーと同一であるため、Publication、Book、または Article での効率的な結合が容易になります。この設計により、NOTES テーブルを変更せずに、雑誌などの新しい出版物の種類を追加できる柔軟性も提供されます。

たとえば、次のテーブル スキーマは、このアプローチの例です。

TABLE Publication (
      ID (PK)

以上がメモのサブタイプまたは個別のテーブル: どのデータベース設計が最適ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。