1

ほとんどのユーザーがアバターを設定しないと仮定すると、新しいユーザーを作成するときにユーザーのテーブルのアバター列に default.jpg のような値を保存するか、コントローラー/ビューに値が存在するかどうかを確認し、null の場合はデフォルトのものを表示する方がよいでしょうか?

4

3 に答える 3

3

空のままにして、コードでチェックを実行します。

  1. データベースに触れることなく、たとえば後日default.jpgから変更するオプションが残ります。または、 SOが「デフォルト」のアバターを生成する方法などdefault.png、他の楽しいことをします。

  2. 私にはすっきりした感じがします(ユーザーがアバターを選択しなかったため、フィールドが空になります。ユーザーが年齢を入力しなかった場合は、1つ作成しますか?いいえ)。

ちなみに、さらに別のアバターを実装する前に、 gravatar.comをチェックする必要があります。アバターを1つのWebサイトに一度だけアップロードする必要があり、他のすべてのサイト(SOなど)が自動的にアバターを使用するのが気に入っています。

于 2012-09-10T01:11:08.087 に答える
0

データベースに NULL を入れると、同一の (したがって冗長な) default.jpg BLOB を多数持つのとは対照的に、ストレージを節約できます。

もちろん、ファイル システムにイメージを保存することもできます。その場合、ストレージの節約ははるかに控えめになります (ファイル自体ではなく、ファイル パスのみが繰り返されるため)。または、BLOB をユーザー間で共有する方法を考案することもできます。しかし、これらすべての戦略はクエリを複雑にし、パフォーマンス/整合性に影響を与える可能性があります...

于 2012-09-10T01:51:09.390 に答える
0

「新しいユーザーの作成」メソッドをdefault.jpgデータベースに入れることにします。これにより、 users テーブル内で一貫性が保たれるため、フィールドが空の場合にコードでチェックを行ったり、特殊なケースを処理したりする必要がなくなります。また、追跡する必要があるコード内の場所を 1 つだけ提供します。

ユーザーを作成しているときは、検証とチェックを行い、必要に応じて防止/修正したいときです。これを下に行けば下るほど、管理が難しくなります。

于 2012-09-10T00:51:28.403 に答える