2016-06-29 8 views
0

statusesのリストを含むデータベーステーブルがあるとします。の値が<options>の場合

私のアプリのフォームでは、ユーザが選択できるstatusesのすべてのオプションを含む<select>があります。

は今、以前statusesのリストから選択されたstatusを表しstatusの列が含まれていpeopleと呼ばれる別のテーブルがあると言うことができます。

そして、私は私のstatusesテーブルからstatusを削除したが、その削除statuspeopleのためのデータベースの行がまだあることを言うことができます。

私のフォームでは、statusesテーブルに存在しないため、その状態の<select>オプションを事前に選択することができなくなりました。

私はこれをどうやって処理するのですか?それで、選択状態で削除されたステータスがまだあらかじめ選択されていますか? <input type="text">を持っている唯一の選択肢ですし、twitter先読みのようなオートコンプリートのいくつかのタイプですか?もしそうなら、私はこれをどのように検証するのですか? statusが入力されているかどうかを確認することはできますか?また、データベーステーブルstatusesに既に存在するものがありますか?

洞察力はすばらしいでしょう。

+2

まず、statusesテーブルからステータスを削除するのではなく、そのテーブルにそのステータスが利用可能かどうかを示す列を持つことを検討してください。 – Nick

+0

素晴らしいアイデア! (15文字) – kjdion84

答えて

2

SOLUTION

あなたがPHPを使用しているので、あなたは、動的人に基づいて、リストの末尾に適切なステータス値を追加することができます。

SUGGESTIONS

まず、あなたは人のテーブルにステータステーブルをリンクする外部キーを使用して、そしてただ一人のテーブル内のステータスの文字列を格納していないする必要があります。この関係を作成すると、テーブルの参照整合性が保持され、最初に現在のステータスを削除できなくなります。

ステータスをテーブルから削除しないでください。アクティブステータスのリストからステータスを削除する必要がある場合は、ステータステーブルに "IsActive"(または同様のもの)というビットフィールドを追加する必要があります。その後、新しいレコードをSELECT * FROM status where IsActive=1に照会して、必要なときに古い値を残しておくことができます。

+0

私はこの解決法も大好きです。 – kjdion84

+0

はい、これは容認された解決策であるはずです。私のコメントは、この提案を怠った方法でした。 – Nick

関連する問題