Сохранить несколько идентификаторов, разделенных запятой в одном столбце - PullRequest
0 голосов
/ 03 сентября 2018

Я хочу сохранить несколько идентификаторов, разделенных запятыми, как varchar в базе данных? Это хорошая практика? Например, у меня есть:

@Entity
class Project{ 
  // other fields


  String classificatorIds;


}

и у меня есть объект Classifierator:

@Entity
class Classificator{
   // other fields

   private Long id;
}

Возможно, мне следует использовать @ManyToMany, но проблема в том, что когда я сохраняю сущность Person из javascript, у меня есть только список идентификаторов классификаторов. При сохранении сущности проекта я не знаю, какие классификаторы удалить или добавить.

1 Ответ

0 голосов
/ 03 сентября 2018

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

1. С внешнего интерфейса (Javascript)

Что вы можете сделать, это разделить запятые с целыми числами и создать чистую структуру данных, чтобы их можно было легко отправлять и сохранять в БД. Вы можете отправить ajax вручную или, если вы используете форму для отправки данных, зарегистрировать прослушиватель и вручную передать ваши скорректированные данные на сервер.

2. С конца

Другое решение состоит в том, чтобы оставить своего клиента (которого я не одобряю), - оставить внешний интерфейс для отправки в том виде, в каком он есть сейчас, а на внутренней стороне разделить идентификаторы на соответствующие объекты Классификатора, а затем сохранить их в БД.

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

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