2010-11-29 5 views
0

私は典型的なテーブルを持っています。余分なデータをMySQL列に関連付ける

id(int) name(varchar) address(varchar) date(datetime) 

また、それぞれの検証機能を参照する表もあります。

id(int) function(varchar) fail_message(varchar) 
    1 email    Please enter a valid email address 
    2 required   This field can not be left blank 

私は最初のテーブルの各列を1つ以上のバリデーターに関連付けることができます。

私がこれを行うことを考える唯一の方法は、カラム名にIDを入れることです。 (列名:電子メール、1; 2)、それをPHPで追跡しますが、それは非常に面倒です。

リレーショナルデータベースでこれを行う良い方法はありますか? NoSQLの実装はこの問題に適していますか?テーブルの列を記述し、別のテーブル内の

答えて

2

を持っているでしょう。

id(int) function_id(int) col_name(varchar) 
1  1    address 
2  1    second_address 
3  2    address 
4  2    name 

エラーチェックを実行する場合は、上記の表を使用してエラーメッセージを列名にリンクします(例: 'function_id from above_table where col_name = "address"')を選択し、障害テーブルを照会します。これらのテーブルは、1つのクエリで十分であるように、結合を含むビューを使用して結合することができます。

これが役に立ちます。

0

プット、これは奇妙な、これは非常に多くの追加の列を持つ表の列をリストし、テーブルを拡張するようなものです

あなたがいることを意味するだろうと言うローカライズされた文字列を使用しての例を拡張する場合のは言わせてfail_messageにはfail_message_idなるとテーブルfail_messageには、SQLで関連を実装するための比較的簡単な方法は、次の操作を行うことであろう、ダンが言ったことと同様に、列(ID、言語、メッセージ)

関連する問題