私はビデオファイルに関する情報を保持している動作中のSQLiteデータベースを持っています。現在のデザインは以下の通りです。しかし、上司はいくつかの変更を加えることに決めました。 データベース設計のアドバイス
FilePropertiesテーブル
は現在、主キーとしてファイル名を使用しています。ただし、PKは現在、 のファイル名と(ファイル) の位置の両方の複合キーでなければなりません。これを行うと、この複合キーを他のテーブルの外部キーとして参照する最良の方法は何でしょうか?私は、自動増分プライマリキーを保持する別のテーブルを作成するか、というファイル名とのロケーションのどちらかを作成することを考えていました。その後、PKは他のすべてのテーブルとの外部キー参照として使用できます。
かは、現在のFilePropertiesテーブルでfileNameにと場所複合キーとは、参照として使用することができ、このフィールドがテーブル内の自動インクリメントし、一意である必要があり、新たなフィールドを追加します。
データベースの設計にはあまり実践的な経験はありませんでしたので、私の問題や現在のデザインに関するアドバイスは大歓迎です。
ファイル名と場所が十分に大きいことを確認してください。 "location"がパスの場合は、50より大きい可能性があります。また、NVARCHARはファイル名のためのより良い選択かもしれません。 – Blazes
+1ブレイズ。はるかに大きな領域が必要になる可能性が高い場合を除き、NVARCHARがデフォルトになります。特にOracleの場合、テキストフィールドは大きなOBjectとして格納されますが、これは使用する苦労です。 –