Я новичок в программировании баз данных и пытаюсь запустить базовое приложение 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
), изменений нет, то есть я все еще вижу идентификатор образца в виде поля на странице держателя.
Кто-нибудь добился успеха с этим или может посоветовать мне, что я делаю неправильно?
РЕДАКТИРОВАТЬ: молчание SO я считаю показательным, что эта конкретная структура не получила широкого распространения. Тогда я хотел бы немного раскрыть свой вопрос и спросить, какие решения вы использовали? На самом деле я экспериментирую с Catalyst:: Плагин::AutoCRUD.