【发布时间】:2012-05-18 17:24:26
【问题描述】:
我对数据库编程相当陌生,正在尝试开发一个基本的 CRUD 应用程序。使用Cruddy! 我有一个非常有限的应用程序,它读取数据字典并根据每个表创建表单。
由于多个表具有大量外键条目,我希望我的应用程序执行连接操作,这对于将每个外键列显示为键所引用的条目是必要的。粗鲁!声称拥有这种能力——它使用CGI::AutoForm 来创建表单。要启动并运行表单,您必须逐列向参考表ui_table_column 提供条目。
我没有为我的所有表及其附属列编写 SQL 语句,而是尝试为单个列正确处理。
来自此表的我的 DDL:
CONSTRAINT `fk_Holder_Sample1`
FOREIGN KEY (`sample_id`)
REFERENCES `sample` (`sample_id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
我尝试设置 AutoForm SQL 条目:
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);
当我刷新我的应用页面(只是刷新浏览器和调用apachectl)时,没有任何变化 - 也就是说,我仍然在 Holder 页面中看到 Sample ID 作为字段。
有没有人在这方面取得了成功,或者可以就我做错了什么提出建议?
编辑:我认为 SO 的沉默表明该特定框架尚未得到广泛使用。那么,我想稍微打开我的问题,并询问您使用了哪些解决方案?我实际上正在尝试Catalyst::Plugin::AutoCRUD。
【问题讨论】: