3

映画/番組の制作を追跡するプログラムを作成しています。スクリーンショットはこちら(ハイレゾPNGなので見にくい場合は新しいタブで開いてください)

ここに画像の説明を入力

ライター、ディレクター、プロデューサーなど、すべてユーザーである共同作業者を持つことができます。その後、これらのユーザーは、ショー、またはショー内のエピソード、またはシーンで共同作業できます。問題は、これを列挙型を回避する方法として使用することを意図していることです。ですから、協力者には、作家、監督、プロデューサー、写真家、またはビデオグラファーのいずれかが必要です。より大きな問題は、彼らに 1 つのプロジェクトだけで協力してもらいたいということです。したがって、エピソードの 1 つのシーンでコラボレーションしてもらいたいと思います (「コラボレーション」を構成するものはしばらく無視してください)。または、特定のシーンではなく、エピソード全体の制作に協力してもらいたい場合もあります。プロットはさらに直感に反するように見えます。plot行が 3 つすべてを指しているように見えますがsceneepisode、およびshow、テーブル。ここでも、プロットがショー、エピソード、またはシーンのみのものになるように列挙型を使用する方法です。

特定のテーブルを作成する必要がありますShow_PlotEpisode_plotおよびScene_Plot、またはこれで問題ありませんか?

4

1 に答える 1

3

必要な動作を強制するために既存のテーブルに制約を追加するだけでよい場合、追加のテーブルを追加してデータ モデルの複雑さを増す必要はありません。私は MySQL のプロではありませんが、関数ベースの制約を作成して、必要なスキーマ制限を満たすことができると確信しています。これにより、複数のデータアクセスアプリケーション (あなた以外の人が作成したもの) から生じる可能性があるソフトウェアレベルの制約の問題も解消されます。制約は、このようなデータベースのユースケースに関するあいまいさを取り除きます。

于 2013-06-19T01:28:03.150 に答える