Есть например два класса 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
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
Пишу сервис для обращения к vk apiУ них стоит ограничение на запросы - не более 3 раз в секунду на методы c user token и 20 раз в секунду на методы с group token
При использовании MySQL получаю такую ошибку:
Пытаюсь получить товары у которых нету фото в базе и есть фото у аналогичных товаровВ первом запросе получаем model по которому идет проверка...