Tengo ООН ejemplo не надел termino de entender ¿Cuál es la forma óptima de resolverlo?
Таблица Una llamada usuarios
.
Таблица Una llamada publicaciones
.
Довод "против" Si planeo guardar los registros de una publicación el id
del usuario que lo registro; la siguiente estructura es correcta?
Pero por ejemplo atendiendo средства передачи que se pudiera crear una tabla llamada publicaciones-usuarios
подставьте una estructura, подобный а-ля siguiente:
¿Cuál es el modo óptimo?, ya que por ejemplo si hago la primer estructura подставляют ООН inner join
Комо el siguiente:
SELECT titulo, cuerpo, username FROM publicaciones
INNER JOIN usuarios
ON usuarios.id = publicaciones.usuarios_id
WHERE usuarios.id = 2;
Puedo крестцы таблицы las publicaciones que haga un usuario teniendo en cuanta que la vinculación de ambas es el id
del usuario Комо llave foránea en la tabla publicaciones
; pero никакой termino de entender bajo que escenarios se США cada uno
Соло Es ООН ejemplo atendiendo que busco aclarar esta duda
Она cuestiГіn фона, чтобы отвечать на твой вопрос, нет , если используя этот тип relaciГіn я могу получать такие данные, в то время как используя этот другой тип relaciГіn я не могу получать .
Действительно, ты можешь получать данные также с любым типом relaciГіn, если те же самые estГЎn довольно выдвинутые.
Кратко мы можем говорить, что:
Применяется Гєnicamente когда: У
Или, в revГ©s:
Применяется когда: У
в зависимости от cГіmo estГ© собранная ты aplicaciГіn, основанные на реальности данных, которая манипулирует , тогда tendrГЎs, который принимать решение из-за которого типа relaciГіn осуществить.
Или же ВїcuГЎl это - реальность из данных, которыми будешь манипулировать ты aplicaciГіn?:
Относительно способа Гіptima делать вещи, как он сказал @gbianchi в Вашем комментарии. Способ Гіptimo тот, что оптимизировал то, что ты хочешь сделать в базе данных, выполняя деловые правила.
не достаточен иметь тип relaciГіn в соответствии с реальностью данных, которым ты манипулируешь. TodavГ - в quedarГЎn некоторые детали, которые ты должен связывать в ней definiciГіn подмостков, такие, как Г-ndices, чтобы упрощать ее obtenciГіn данных, контролировать дублированные реестры, добавлять ограничения ссылочной целостности, которые предотвращали бы существование реестров huГ©rfanos, и т.д.
Было, который состоял та relaciГіn в том, чтобы ты использовал, всегда podrГЎs в том, чтобы получать данные, которых ты хочешь, подмостков.
Давайте Видеть:
SELECT
u.nombre,
p.titulo
FROM usuarios u
INNER JOIN publicaciones p ON u.id_usario = p.id_usuario
SELECT
u.nombre,
p.titulo
FROM usuarios_publicaciones up
INNER JOIN usuarios u ON up.id_usario = u.id_usuario
INNER JOIN publicaciones p ON up.id_publicacion = p.id_publicacion
В обоих примерах получают те же колонны. Ло Гєnica, что varГ - в es способ получать данные делая JOIN
корреспондентов, основанных на форме, в которой мы создали связи.
того, что я хочу сказать, состоит в том, что ты не можешь определять одну relaciГіn думая, что у этого есть какая-то implicaciГіn в способе получать данные . У него нет ни одной implicaciГіn. В обоих примерах мы получаем те же колонны nombre
из таблицы usuarios
и titulo
из таблицы publicaciones
. И asГ, - мы можем получать любую колонну, которая участвовала бы ее relaciГіn.
Другая вещь serГ - в факт получения группируемых данных, например в случае связей многие во многие. Для этого tambiГ©n существуют функции agrupaciГіn, как GROUP_CONCAT
, в конкретном случае MySQL.