私は、組織のメンバーをデータベース内で維持できるようにする PHP/MySQL アプリケーションに取り組んでいます。現在、「メンバーの追加」スパンをクリックすると、空白のエントリがデータベースに挿入され、作成された ID が PHP に返されます。有効な ID を受け取ると、アプリケーション ユーザーは jQuery を介して、新しく作成されたメンバーを参照する編集ページにリダイレクトされます。
私が知る限り、これには次の利点/欠点があります。
利点
- メンバーの ID を既に持っているため、jQueryUI ダイアログを送信するとすぐに購入/支払いをメンバーに関連付けることができます。
- 別々の追加/編集画面だったものを統合するので、私の側では保守が容易になります。
短所
- 古いエントリになる可能性が高いです。つまり、誰かが [メンバーの追加] を複数回クリックして新しいページを保存せず、エントリが空白のままになる可能性があります。
- すべての列に NULL を受け入れる必要があるため、テーブルに多くの制約を適用できません。
すべてのシナリオ/利点/欠点について考えていますか? メンバーを追加するための別のページを作成する必要がありますか、それとも古いエントリを受け入れて、古いエントリが表示されていないことを確認するためにすべてのメンバーを取得するときにいくつかのチェックを追加する方がよいでしょうか?
現在メンバーを追加するための私のデータベース機能:
public static function addMember()
{
$q = 'INSERT INTO ' . MemberTable::TABLE_NAME
. ' (' . MemberTable::ID
. ') VALUES (null)';
try
{
$db = new DBConnection();
$toRet = $db->execute($q);
}
catch(Exception $e)
{
error_log($e->getMessage());
$toRet = -1;
}
if($toRet > 0)
{
DBSystemEvent::logMessage("Added new member with ID $toRet");
}
unset($db);
return $toRet;
}
編集 1:質問を読み直した後、最初の段落で言及されているメンバーとユーザーが異なることを明確にする必要があります。ユーザーとは、アプリケーションにログインした人を指します。メンバーはアプリケーションにログインできません。これは病院のアプリケーションに似ています (患者はログインしたり、自分の情報を編集したりできません。看護師や医師などのアプリケーション ユーザーのみがログインして情報を編集できます)。
編集 2:与えられた回答のどれも私の問題に完全に適合するものではありませんが (ID を知らずにデータベースに挿入する必要がある場合があるため)、質問の言い回しに基づいて回答を受け入れることにしました (より具体的にすることができるため)ローカライズされた領域に入る)。