画像ウェブサイトをつなぎ合わせています。基本的なスキーマは非常に単純なMySQLですが、イメージに関連付けられている可能性のある管理フラグ(「不適切」、「著作権」など)を表現しようとすると問題が発生します。私の現在の概念は次のとおりです。
tblImages (
imageID INT UNSIGNED NOT NULL AUTO_INCREMENT,
...
);
tblImageFlags (
imageFlagID INT UNSIGNED NOT NULL AUTO_INCREMENT,
imageID INT UNSIGNED NOT NULL,
flagTypeID INT UNSIGNED NOT NULL,
resolutionTypeID INT UNSIGNED NOT NULL,
...
);
luResolutionTypes (
resolutionTypeID INT UNSIGNED NOT NULL AUTO_INCREMENT,
resolutionType VARCHAR(63) NOT NULL,
...
);
(読みやすくするために切り捨てられました;各種の外部キーとインデックスが整然と並んでいます、私は誓います)
tblImageFlags.flagTypeID
はフラグ型のルックアップテーブルで外部キー化され、想像できるようにtblImageFlags.resolutionTypeID
shouldは外部キー化されますluResolutionTypes.resolutionTypeID
。手元の問題は、フラグが最初に発行されたとき、論理的な解決タイプがないことです(これをNULL
の適切な使用法として宣言します)。ただし、値が設定されている場合は、ルックアップテーブルに対して外部キーを設定する必要があります。
この状況に対するMySQL構文の回避策が見つかりません。存在しますか?次点者は次のとおりです。
NULL
エントリをluResolutionTypes.resolutionTypeID
に追加します(これはAUTO_INCREMENT
列でも機能しますか?)洞察力をありがとう!
PS Bonusは、データベースの場合は「インデックス」か「インデックス」かを教えてくれる人を指します。
フォローアップ:テーブル構造の構文エラーであることが判明したビル・カーウィンに感謝します(NULL
を許可する場合は、NOT NULL
に列を設定しないでください) !)。そして、それらのボーナスポイントを与えるのに十分なカルマができたら、私は:)
これを解決するには、外部キー列にNULL
を許可しますtblImageFlags.resolutionTypeID
。
PSボーナスは、データベースの場合、「インデックス」か「インデックス」かを教えてくれる人を指します。
複数のindexはindexesでなければなりません。
ブライアンA.ガーナーによる「 Modern American Usage 」によると:
通常の目的では、indexesが複数形であり、indicesではありません。 ...インデックス、ただし、foraまたはdogmata、それにもかかわらず大げさです。一部の作家は、数学や科学のように技術的な文脈でindicesを好みます。 indexの最良の複数形ではありませんが、indicesはある意味で許容されます「インジケータ」。 ...単数indice、複数indices。