1

ここで私が作成したデータベースのスキーマを示します。SQLデータベースのスキーマ設計タグ

my schema

  • ビールは、単一のカテゴリに属します。
  • カテゴリは複数のタグで構成されています。
  • ビールは複数のタグでタグ付けされています。
  • タグは複数のビール(多対多)で使用できます。

制約: あなたはこれらのタグが関連付けられているカテゴリに属していないビールにタグを追加することはできません。

制約についてはこの設計が正しいですか?これは私のコードで扱うべきものですか?

答えて

1

制約がある場合、この設計は正しいです。

この設計では、各タグが1つのカテゴリにのみ属することも必要です。カテゴリとタグの間に多対多はありません。

タグが関連付けられているカテゴリに属していないビールにタグを追加することはできません。

このルールは、アプリケーションロジックを通じて適用する必要があります。データベース設計では、そのビールが割り当てられていないカテゴリのタグにビールが割り当てられることはありません。デザインの欠陥ではなく、まさにそれです。リレーショナルデータベース設計では、あらゆる種類のルールや制約をそれ自体で実行することはできません。

usertag、およびcategoryのアイデアは、あなたの簡単な説明であるか漠然と考えると、我々はビジネスの問題/コンテキストを理解できないよう考慮に与えられるべき更なる助言や更なる考えはありません。

+0

再生いただきありがとうございます。あなたが言ったように、データベーススキーマは、そのビールが割り当てられていないカテゴリのタグにビールが割り当てられるのを妨げません。それがポストの理由でした。私はこの部分をデータベースレベルで扱わなければならないと考え、それを実行することができませんでした。 –

関連する問題