私は3つのテーブルを持っています、
user - contains user_id | username | fullname | email etcc
user_profile - contains entry_id |user_id| profile_image_id| user_location etcc
user_profile_images - contains image_id| user_id | file_path | file_thumb | date etcc
ユーザーがサインアップすると、すべての詳細が users テーブルに送られ、user_id も user_profile テーブルに追加され、ユーザーがプロファイル情報を追加するまで残りはデフォルトで NULL に設定されます。
これら 3 つのテーブルからすべてのユーザーのデータを取得するために、model_users にクエリがあり、次のようになります。
$this->db->where('users.user_id', $user_id)->select('*')->from('users');
$this->db->join('user_profile', 'user_profile.user_id = users.user_id', 'left');
$this->db->join('user_profile_images','user_profile_images.image_id = user_profile.profile_image_id','left');
user_profile の profile_image_id フィールドが null でない場合、つまりユーザーが写真をアップロードした場合にのみ機能します。フィールドが null の場合、他のすべてのデータが返されても、ユーザーの user_id は返されません。
私の結合クエリにはフィールド profile_image_id が必要ですが、現在の私の方法は、user_profile の profile_image_id を 1 (デフォルト) に設定することでした。これは一般的なデフォルト イメージです。しかし、ハックを少なくするためにそのクエリを更新する必要があるという事実をまだ乗り越えることはできません。何かアイデアはありますか?