我对数据库编程相当陌生,正在尝试开发一个基本的 CRUD 应用程序。使用粗鲁!我有一个非常有限的应用程序,它读取数据字典并根据每个表创建表单。
由于几个表具有广泛的外键条目,我希望我的应用程序执行连接操作,这对于每个外键列都显示为键所指的条目是必要的。粗鲁!声称拥有这种能力 - 它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。