Yourmind
@Yourmind
пишу говнокод в перерывах между едой и сериалами

Как лучше сформировать класс Record?

У меня есть какой то класс User (храню его в бд). У него есть первичный ключ id. Также у меня есть класс Record, означает запись клиента. В нем там есть какие то поля. Также нам надо ссылаться на клиента. И тут возникает вопрос как лучше: хранить в классе User или только его id?
Т е:

public class User {
private int id;
...
}

Вариант 1:
public class Record {
private int user;
...
}

вариант2:
public class Record {
private User user;
...
}
  • Вопрос задан
  • 125 просмотров
Пригласить эксперта
Ответы на вопрос 2
@majstar_Zubr
C++, C#, gamedev
Если у вас есть смонения, что в будущем обычным встроенным типом дело не ограничится, то предпочитайте класс.

Если вы используете концепцию Record для названия, то скорее всего вы ещё не определились с диаграммой классов, потому что Record слишком высокоуровневые понятие, и скорее всего, вы планируете использовать как класс-контейнер, а значит имеет смысл сделать его шаблонным/параметризируемым типом хранения.

Если все же вы не уверены, то лучше оставить User, потому что так намерения выражены однозначнгти код понятнее, будет проще в будущем рефакторить
Ответ написан
Комментировать
@frozen_coder
Java-developer
Это классы прямое отображение вашей схемы БД (т.е. описывают java-кодом как у вас данные в БД хранятся) или это ваши обычные классы, которые участвуют в бизнес логике?

Если первое, то такое обычно лучше генерить автоматом с помощью какого-нибудь JOOQ, если оно вам вообще надо. И тогда это будет вариант 1

Если второе, то конечно выбираете вариант 2. Какой вам толк от одного id-шника? А если вам куда-то передавать надо будет Record, то ещё и отдельно его User будете тащить?

Есть ещё вариант, что это у вас какое-то DTO и нужно только знать id, связанного пользователя и всё. Самого пользователя никогда внутри Record увидеть не хотите, не ожидаете, не нужно, лишние таскать тяжело. Тогда вариант 1.

Вообщем. Исходите из решаемой проблемы и как вы с этим будете дальше жить и использовать.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Bell Integrator Ульяновск
До 400 000 ₽
Bell Integrator Ижевск
До 400 000 ₽
Bell Integrator Хабаровск
До 400 000 ₽
28 мар. 2024, в 12:05
2000 руб./за проект
28 мар. 2024, в 11:24
5000 руб./за проект