это хорошая идея, чтобы сохранить первичные ключи в моем внешнем интерфейсе, чтобы использовать их после отправки на мой сервер для выполнения некоторых операций с базой данных? - PullRequest
0 голосов
/ 13 июня 2018

Я хочу поместить вас в контекст.У меня есть веб-приложение на Java, где я использую следующее.

  • mybatis для доступа к базе данных
  • загрузчик как фреймворк css
  • datatable js
  • jquery для вызова ajax на мой сервер

Также в моей базе данных есть два HTML (updateDriver.html, assignCarToDriver.html) и три объекта.

  • driver
  • машина
  • driver_car

Итак, у меня есть два сценария.

  • Первый - это обновление сущности водителя в updateCar.html
  • Второй - присвоение автомобиля или машин водителю в assignCarToDriver.html.

Как вы можете видеть, отношения между базами данных между двумя моими сущностями очень много, поэтому моя база данных выглядит следующим образом.

|водитель | --- | driver_car | --- |car |

В первом сценарии , в первом html (updateDriver.html) эти шаги будут выполняться.

  1. Сервер отправляет объект драйверана мой интерфейс с его атрибутами базы данных, такими как первичный ключ, имя, фамилия, возраст.
  2. Я бы отобразил эти атрибуты в моем html, но не показываю первичный ключ (этот я бы вставил в скрытый входной текст)

Поэтому, когда пользователь нажимает кнопку «обновить» на моем html, я получаю значения через jquery и отправляю их на мой сервер, чтобы выполнить обновление в моей базе данных, мой вопрос возникает здесь:это хороший подход, чтобы скрыть первичный ключ в скрытый ввод текста?а если нет, то какие еще способы существуют для достижения этой цели?

Во втором сценарии , в sencod html (assignCarToDriver.html) есть комбо, отображающее все драйверы включения,введите текст, в котором пользователь должен написать номерной знак автомобиля и таблицу (с данными), где будут показаны автомобили.Итак, представьте это.Я выбираю первого водителя, показанного в поле со списком, затем я вписываю автомобильный номерной знак в свой текст ввода, я нажимаю кнопку «поиск», чтобы выполнить эти шаги.

  1. Сервер отправляет мнеавтомобильная сущность с ее атрибутами, такими как первичный ключ, модель, цвет для внешнего интерфейса
  2. Таким образом, я бы отображал атрибуты машины в моей таблице (с данными), но не показываю первичный ключ (я бы сделал столбец невидимым)

Поэтому, когда пользователь нажимает кнопку «Назначить», я получаю комбо-значение, записи в таблице, а затем отправляю их на свой сервер, и тут возникает мой вопрос. В данном случае это хорошо?подход, чтобы получить сущности, поместить их в таблицу (datatable js) и спрятать столбец, где отображается первичный ключ, чтобы отправить их на мой сервер, чтобы выполнить операцию назначения?а если нет, то какие еще способы существуют для этого?

Как видите, я считаю плохой практикой иметь первичные ключи в моем интерфейсе, но я могу ошибаться.

Я надеюсь, что мое объяснение было ясным, и мне очень жаль, если я написал слишком много, но я только начинаю создавать Java-приложения и очень хочу разрабатывать системы, основанные на хороших подходах и лучших практиках, надеюсь, вы сможете помочьмне.Заранее благодарю за помощь.

1 Ответ

0 голосов
/ 13 июня 2018

Отлично.Однако вместо того, чтобы скрывать первичный ключ (идентификатор сущности) в столбце, вы должны указать его как значения переключателя.

...