Есть например два класса Document и User. У Document есть поле creator (из числа существующих пользователей). Как стоит задать такое поле? по id класса User или напрямую подставлять User?
private Integer userId;
OR
private User user;
В идеале услышать минусы/плюсы вариантов кратко. Спасибо
Не могу найти у себя в голове ни одного аргумента в пользу варианта:
private Integer userId;
Причем неважно: one-to-many, many-to-one и т.д.
Во всех известных мне реализациях DAO/ORM используется всегда связь типа:
private User user;
Ну разве что в терминах ORM это может быть раскрыто приблизительно так (пример по OrmLite):
@DatabaseField(columnName = userId, index=true, foreign = true)
private User user;
Откуда примерно понятно, что в реале связь естественно через userId
, но конечный DAO объект уже будет private User user
Вариант private User user
, как по мне, более правильный с точки зрения проектирования БД. Задаете связь oneToMany
, oneToOne
и в таблице БД Document
получите айди user
. Document
со всеми user
можно получить одним запросом выборки с документов. Так же само можно получить все документы по нужному пользователю.
Далее еще важен вопрос сколько может быть user
на document
. Если один, то вариант с айдишкой, в принципе, тоже можно использовать, хотя и не совсем правильно.
Если же user
на document
будет больше одного, тогда однозначно лучше использовать указанные выше связи, либо вариант manyToMany
Виртуальный выделенный сервер (VDS) становится отличным выбором
Пишу сервис для обращения к vk apiУ них стоит ограничение на запросы - не более 3 раз в секунду на методы c user token и 20 раз в секунду на методы с group token
При использовании MySQL получаю такую ошибку:
Пытаюсь получить товары у которых нету фото в базе и есть фото у аналогичных товаровВ первом запросе получаем model по которому идет проверка...