2010-11-29 6 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 

첫 번째 테이블의 각 열을 하나 이상의 유효성 검사기와 연결할 수 있기를 바랍니다.

내가 이것을 할 수있는 유일한 방법은 ID를 열 이름에 채우는 것입니다. (열 이름 : 전자 메일, 1, 2) PHP를 통해 추적 할 수 있지만 매우 혼란스러워 보입니다.

관계형 데이터베이스로이를 수행하는 좋은 방법이 있습니까? NoSQL 구현이이 문제에 더 잘 맞을까요? 테이블의 열을 설명 다른 테이블의

답변

2

유사 (ID, 언어, 메시지) 것, SQL의 연결을 구현하는 비교적 쉬운 방법은 다음을 수행하는 것입니다 :

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"')를 선택하고 실패 표를 조회하십시오. 이러한 테이블은 이후 단일 쿼리로 충분할 수 있도록 조인이 포함 된 뷰를 사용하여 결합 될 수 있습니다.

희망이 도움이됩니다.

0

넣어이 이상한이 매우 추가 열이 테이블의 열을 나열하는 테이블을 확장처럼

는 것을 의미 말할 지역화 된 문자열을 사용하여 예제를 확장하는 경우의 말을하자 fail_message가 fail_message_id 될 것입니다 및 테이블 fail_message이 열을 댄 말에

관련 문제