2012-05-18 6 views
1

저는 데이터베이스 프로그래밍에 익숙하지 않으며 기본 CRUD 응용 프로그램을 사용하려고합니다. Cruddy!을 사용하여 데이터 사전을 읽고 각 테이블을 기반으로 양식을 만드는 매우 제한된 응용 프로그램이 있습니다.Perl MySQL Cruddy! 지원

여러 테이블에 광범위한 외래 키 항목이 있으므로 키가 참조하는 항목으로 각 외래 키 열을 표시하는 데 필요한 조인 작업을 앱에서 수행해야합니다. 크루디! 이 기능을 가지고 있다고 주장합니다 - 양식을 만들 때 CGI::AutoForm을 사용합니다. 양식을 실행하려면 참조 테이블 ui_table_column에 열 단위로 항목을 제공해야합니다.

모든 테이블과 관련 컬럼에 대한 SQL 문을 쓰는 대신 하나의 컬럼에 대한 프로세스를 올바르게 작성하려고합니다.

CONSTRAINT `fk_Holder_Sample1` 
FOREIGN KEY (`sample_id`) 
REFERENCES `sample` (`sample_id`) 
ON DELETE NO ACTION 
ON UPDATE NO ACTION, 

그리고 해당 폼 SQL 항목을 설정에서 내 시도 :이 테이블 내 DDL에서

INSERT INTO ui_table_column (
    table_name, field_name, appear_order, heading, searchable, updatable, insertable, input_control_type, multi_insert_delimiter, 
    search_control_type, search_mult_select, use_data_dict, datatype, default_value, required, input_size, input_maxlength, brief_heading, 
    alt_mask_field, mask_table_name, mask_field_name, id_field_name, no_cache, radio_checkbox_cols, field_group, element_attrs, help_summary) 
VALUES (
    'SAMPLE', 'SAMPLE_ID', 10, 'ID', 'Y', 'N', 'N', 'TEXT', NULL, 
    'SELECT', 4, 'Y', NULL, NULL, NULL, NULL, NULL, NULL, 
    NULL, 'sample', 'name', 'sample_id', 'Y', NULL, NULL, NULL, NULL); 

INSERT INTO ui_table_column (
    table_name, field_name, appear_order, heading, searchable, updatable, insertable, input_control_type, multi_insert_delimiter, 
    search_control_type, search_mult_select, use_data_dict, datatype, default_value, required, input_size, input_maxlength, brief_heading, 
    alt_mask_field, mask_table_name, mask_field_name, id_field_name, no_cache, radio_checkbox_cols, field_group, element_attrs, help_summary) 
VALUES (
    'SAMPLE', 'SAMPLE_NAME', 20, 'Name', 'Y', 'Y', 'Y', 'TEXT', NULL, 
    'MATCH TEXT', NULL, 'Y', NULL, NULL, NULL, NULL, NULL, 'Name', 
    NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL); 

INSERT INTO ui_table_column (
    table_name, field_name, appear_order, heading, searchable, updatable, insertable, input_control_type, multi_insert_delimiter, 
    search_control_type, search_mult_select, use_data_dict, datatype, default_value, required, input_size, input_maxlength, brief_heading, 
    alt_mask_field, mask_table_name, mask_field_name, id_field_name, no_cache, radio_checkbox_cols, field_group, element_attrs, help_summary) 
VALUES (
    'HOLDER', 'SAMPLE_ID', 30, 'sample', 'Y', 'Y', 'Y', 'SELECT', NULL, 
    'SELECT', 4, 'Y', NULL, NULL, NULL, NULL, NULL, 'Sample', 
    NULL, 'sample', 'NAME', 'SAMPLE_ID', 'Y', NULL, NULL, NULL, NULL); 

내 앱 페이지를 (둘 다 그냥이 broswer 새로 고침 및 호출 새로 고침 할 때 apachectl) 변경 사항은 없습니다. 즉, Holder 페이지의 필드로 Sample ID가 계속 표시됩니다.

누구나이 문제에 성공했거나 내가 잘못하고있는 것에 대해 조언 해 줄 수 있습니까?


EDIT : 침묵은이 특정 프레임 워크가 널리 사용되지 않았 음을 나타냅니다. 내 질문을 조금 열고 싶습니다. 어떤 솔루션을 사용했는지 묻고 싶습니다. 나는 실제로 Catalyst::Plugin::AutoCRUD을 실험하고있다.

답변

2

학습자가 다른 프레임 워크로 결론을 맺었지만 나중에 참조 할 수있게되면이 필드는 대문자 여야합니다.

위의 예에서 첫 번째 및 세 번째 삽입 문은 (alt_mask_field, mask_table_name, mask_field_name, id_field_name) = (NULL, 'SAMPLE', 'NAME', 'SAMPLE_ID')이됩니다.

+0

의견을 보내 주셔서 감사합니다. 나는 당신의 대답을 받아 들였습니다. – learner

0

편집시 모듈을 사용하여 권선했습니다. 나는 이것을 내일 폐쇄로 표시 할 것이다.