0

問題のアイテムは何でもかまいません。私の場合は、ユーザーがアップロードしたファイルです。

次の表があります。

Files table -  file_id (pk), user_id (fk), file_name

各ファイルの禁止ステータスを保存するにはどうすればよいですか?

banned_files テーブルを持つことを考えましたが、ユーザーはファイルを削除したり、ファイルを無効にしたり、ファイルを保留にしたりすることもできます。これは、すべてのステータスのテーブルを意味しますが、これは良い考えとは言えません。

更新 #1

ファイルは複数のステータスを持つことができる必要があります。たとえば、ファイルは禁止され、削除される可能性があります。そのため、ユーザーがファイルの削除を取り消しても、引き続き禁止されます。

アップデート #2

ファイルが禁止された場合、禁止の理由を記録する必要があります。次の表に理由があります。

Reasons table -  reason_id (pk), reason_text
4

2 に答える 2

2

可能なステータスのテーブルと、それと Files テーブルの間の交差テーブルを作成します。ファイルが交差テーブルを介して結合されている場合、ファイルには特定のステータスがあります。

于 2013-09-17T08:48:54.373 に答える
2

このようなものはうまくいくかもしれません:

files
    id              unsigned int(P)
    user_id         unsigned int(F users.id)
    path            varchar(200)

files_statuses
    id              unsigned int(P)
    status_id       unsigned int(F statuses.id)
    reason_id       unsigned int(F reasons.id) ALLOW NULL, DEFAULT NULL

reasons
    id              unsigned int(P)
    description     varchar(100) // Offensive material, etc.

statuses
    id              unsigned int(P)
    description     varchar(50) // Banned, Deleted, etc.
于 2013-09-17T13:17:42.437 に答える