1

私はid, name, size, type、ファイルアップロードのテーブル(フィールド:)と、ファイルアップロードテーブル(フィールド:)の1つのレコードを指す外部キーを持つ一連の他のテーブル(メモ、ファイリング)を使用して遊んでいますupload_id。一連のテーブル(メモ、ファイリングなど)のそれぞれのモデルには、ファイルアップロードテーブルを指すbelongTo関係が含まれます。

つまり、ファイルアップロードテーブルには外部キーがないため(複数のテーブルがそれを指している)、他のすべてのテーブル(たとえば、など)のフィールドがない限り、外部IDフィールドは機能しませnote_idfiling_id。モデルは関係について言及しません。

別の方法でやるべきですか?これ以上効率的なものは考えられません。

4

1 に答える 1

2

基本的にビジネスロジックに依存します。

ファイルが他のテーブル(メモの塗りつぶしなど)に分散されている場合は、

hasManyをアップロードするメモhasManyをアップロードする

ただし、これは、レコードごとにファイルが1つしかない場合です。

メモまたは詰め物に複数のファイルがある場合は、HABTM関係に移動するか、次の手順を実行する必要があります。

Table notes:
id, name, desc ...

Table uploads:
id, name, size, type

Table notes_uploads:
id, note_id, upload_id

Table fillings_uploads:
id, filling_id, upload_id

したがって、ファイルを含む各エンティティに対して多対多の関係を定義します。

2番目の方法はより柔軟な方法だと思いますが、実際には要件によって異なります。

于 2011-03-24T08:22:42.263 に答える