Сложны ли требования?Как преодолеть эти проблемы? - PullRequest
0 голосов
/ 08 августа 2011

Я использую управление автозаполнением jQuery для выполнения поиска по трем объектам: Владелец, Менеджер и Арендатор.Каждый объект сохраняется в своей собственной таблице в базе данных.

Под управлением автозаполнения, сетка (скрытый div) будет отображаться и заполняться на основе выбора пользователя.Сетка использует элементы управления текстовыми полями, чтобы пользователь мог снова редактировать и сохранять.

Теперь у меня возникают следующие проблемы:

  1. При отправке обратно на сервер, как узнать, какая сущностьпользователь работал над?это владелец, менеджер или арендатор?Мне нужно выяснить это, чтобы знать, где сохранять данные в базе данных.
  2. Проверка на стороне сервера является обязательным, как вы знаете.Что делать, если пользователь отправил неверные данные?Обычный шаблон состоит в том, чтобы снова отобразить страницу с сообщениями об ошибках.
    Но в моем случае grid / div показывается на основе собственного поиска автозаполнения, показывая, что страница снова просто скрывает div.

Могу ли я использовать намного более простой подход?

Используемые технологии - это инфраструктура jQuery и Grails.

1 Ответ

0 голосов
/ 08 августа 2011

Здесь много чего происходит, но это не ошеломляет. Займитесь этим понемногу.

Очевидно, что первоначальный запрос может использовать объединения для получения всех результатов из трех таблиц, которые соответствуют указанным значениям запроса. Однако я бы начал с того, что поставил под сомнение ваше обоснование трех отдельных таблиц базы данных, поскольку оно нарушает основной принцип реляционной базы данных - повторяющиеся поля и, возможно, повторяющиеся данные, если один человек исполняет две разные роли (классика: «маловероятно, но в теории возможная ситуация ") Каждый человек - человек, и у каждого будут одинаковые требования к данным, такие как имя, фамилия, адрес, город и т. д. Итак, почему бы не хранить информацию о человеке в таблицу, а затем либо есть отдельная таблица, которая определяет человека по идентификатору для отношения, либо поочередно имеет поле в базе данных "человек", которое определяет их роль? В конечном счете, чтобы это работало, у вас должен быть какой-то общий идентификатор, на который система может посмотреть, чтобы сказать ему, какую роль играет этот человек.

Если вы хотите остаться с существующей структурой, я бы подумал, что вам нужно будет выполнить сложное объединение, в котором псевдонимы из каждой таблицы будут иметь имя поля, например Owner_id, которое вы затем сможете использовать для принятия решения на какой таблице. они принадлежат .... не эффективно!

Я бы лично запросил информацию в jQuery Datatables , которая в настоящее время является самой многофункциональной сеткой. У него есть редактируемые регионы, доступные и работающие хорошо. Хитрость к этому на стороне пользовательского интерфейса состоит в том, чтобы инициализировать таблицу данных с пустым набором результатов, исходящим из источника ajax, а затем «обновить» его с помощью команды oTable.fnDraw(false);

Наконец, для сохранения я бы взял идентификатор сохраненного значения, а jQuery Ajax сохранил его в сценарии. Я бы запустил поиск в БД по этому идентификатору, чтобы увидеть, какие у него отношения, и именно здесь лучшая нормализация позволила бы вам просто делать запросы на основе их статуса отношений (владелец, менеджер или арендатор), чтобы получить это значение. Оттуда запустите обновление БД на основе вычисленного идентификатора и имени таблицы и циклически переведите представление, чтобы показать успешность и вернуться к «главному экрану»

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...