Arquivado
Este tópico foi arquivado e está fechado para novas respostas.
Qual melhor pratica muitos pra muitos nesse caso
Por
Renato Muniz, em MySQL
Recommended Posts
-
Conteúdo Similar
-
Por jpierredraw
Olá,
Tenho o seguinte cenário e não consigo resolver. Se alguem conseguir por favor me clarear as ideias.
Tenho uma tabela noticias e gostaria que cada noticia tivesse mais que uma categoria e subcategoria.
Criei uma tabela "noticia_categorias_relacionadas" informando o ID da noticia e suas respectivas categorias e subcategorias.
Como montar um sql puxando dessas tabelas?
Desde ja agradeço.
Consegui resolver com um relacionamento simples entre duas tabelas, tipo, um select normal. Obrigado
-
Por Selitto
Sei que meu modelo não está bem certo, gostaria que pudessem me ajudar.
https://udemy-images.s3.amazonaws.com/redactor/raw/2017-08-31_05-11-29-ea577932f32b32dc3d8ddffb2df8941b.jpg
https://udemy-images.s3.amazonaws.com/redactor/raw/2017-08-31_17-04-28-9bd01e59268463feac5400c331a8e5ce.png
Como se comporta uma relação aonde tenho Usuários e esses relacionamentos, me disseram 1..n --- 1..n mas eu acho que seja 1..1 --- 1..1
E como relaciono dois usuários com empréstimo por exemplo no modelo lógico? Preciso de 2 chaves estrangeiras para id-usuario e os livros? Meu professor disse que não pode ter 2 relações entre tabelas.
Preciso mesmo de ajuda para montar esse banco, o que estou achando mais difícil, é como ter essas relações aonde preciso de 2 usuários, por exemplo numa avaliação preciso saber quem fez e quem recebeu? Empréstimo que solicitou e quem recebeu? assim por diante.
-
Por GiselePassoni
Estou tentando fazer o relacionamento entre 3 tabelas no laravel. Com 2 tabelas eu consegui, graças a ajuda do fórum, mas não estou conseguindo fazer funcionar com 3 tabelas. o relacionamento é o seguinte:
Tenho 3 tabelas:
Noticias, Fotos e Unidade (unidades escolares)
tabela noticia -> id_noticias
tabela fotos-> id_fotos e id_noticias
tabela noticia_unidade -> id_noticias e id_unidade
O relacionamento noticias com fotos está ok: na página principal aparecem 2 noticias e uma foto de cada. Agora preciso que seja filtrado por unidade: Na página da faculdade aparecer apenas as noticias da uniadde 2, por exemplo.
Seguem os models e controllers:
Controller public function index() { $not_faculdade = Noticia::with(['foto' => function($query){ $query->get()->first(); }]) ->with(['unidade' => function($query2){ $query2->where('id_unidade','2') ->get(); }]) ->orderBy('id_noticias','DESC') ->take(2) ->get(); // dd($not_faculdade); return view('pages_faculdade.noticia')->with('not_faculdade',$not_faculdade); } Relacionamentos class Noticia extends Model { protected $table = 'noticias'; protected $primaryKey = 'id_noticias'; public $timestamps = false; protected $dates = ['data']; protected $fillable =[ 'texto', 'titulo', 'legenda', 'pasta', 'subtitulo', 'evento', 'titulo_evento' ]; public function foto() { //return $this->hasMany(Foto::class); return $this->hasMany('App\Foto','id_noticia','id_noticias'); } public function unidade() { //return $this->hasMany(Foto::class); return $this->belongsTo('App\Unidade','id_noticias','id_noticia'); } } class Unidade extends Model { protected $table = 'noticia_unidade'; // protected $primaryKey = 'id_noticia, id_unidade'; public $timestamps = false; protected $dates = ['deleted_at']; protected $fillable = [ 'id_unidade', 'id_noticia' ]; public function noticias() { return $this->hasMany('App\Noticia','id_noticias','id_noticia'); } } na view está assim: @foreach ($not_faculdade as $key=> $not) <div class="col-md-6"> <div class="panel-heading"> <div class="painel_foto"><img src={{asset('public/'.$not->foto[0]->endereco)}}></div> <h4>{{ $not->titulo }}</h4> <p align="justify"> <a href="#" class="noticia"> {{$texto = substr($not->texto,0,150)." ..."}} </a> </p> </div> </div> @endforeach Como disse, as 2 noticias com a foto de "capa" aparecem normalmente, mas não funciona o filtro.
Se eu der um dd($not_faculdade), é mostrado os relacionamento aparentemente certos!
O que poderia estar errado?
-
Por JosimarNew
Olá amigos, segue em anexo um diagrama onde faço o relacionamento entre entidades, subentidades e atributos. Gostaria que pessoas mais experientes comentassem e me apresentassem um senso crítico a respeito.
-
Por GiselePassoni
Boa tarde!
Tenho uma tabela de notícias e uma tabela de fotos. Cada notícia possui várias fotos. Na home tem que aparecer as duas últimas notícias e a respectiva foto de destaque.
os Models estão assim:
class Noticia extends Model { protected $table = 'not_noticias'; protected $primaryKey = 'id_noticias'; public $timestamps = false; protected $dates = ['deleted_at']; protected $fillable =[ 'texto', 'titulo', 'legenda', 'pasta', 'subtitulo', 'evento', 'titulo_evento' ]; public function foto() { //return $this->hasMany(Foto::class); return $this->hasMany('App\Foto','id_noticia','id_noticias'); } } class Foto extends Model { protected $table = 'not_fotos'; protected $primaryKey = 'id_foto'; public $timestamps = false; protected $dates = ['deleted_at']; protected $fillable = [ 'nome', 'endereco', 'id_noticia' ]; public function noticias() { return $this->belongsTo('App\Noticia','id_noticias','id_noticia'); } } O controller está assim:
Class NoticiasController extends Controller { public function index() { } public function noticia() { $noticias = Noticia::with(['Foto' => function($query){ $query->get()->first();//first()find(1) }]) ->orderBy('id_noticias','DESC') ->take(2) ->get(); //dd($noticias); return view('inc_home.noticias')->with('noticias',$noticias); } } na view noticias.blase.php está assim;
@foreach ($noticias as $key=> $not) <div class="col-md-6"> <div class="panel-heading"> <img src={{asset('public/'.$not->fotos->endereco)}}> <h4>{{ $not->titulo }}</h4> <p align="justify"> <a href="#" class="noticia"> {{$texto = substr($not->texto,0,150)." ..."}} </a> </p> </div> </div> @endforeach
Ao tentar exibir a view, aparece: Trying to get property of non-object (View: C:\xampp\htdocs\pro_fundec\resources\views\inc_home\noticias.blade.php)
Não sei o que está errado!
Se na view eu deixo apenas assim: <img src={{asset('public/'.$not->endereco)}}> aparece o titulo e texto, mas as imagens não
Aguardo pela ajuda!
-