Ir para conteúdo
Renato Muniz

Qual melhor pratica muitos pra muitos nesse caso

Recommended Posts

Olá pessoal bom dia, olha só... 

to terminando um sistema, daí tem o seguinte, cada usuário logado terá N empresas "oficina mecânica" cadastrada em seu nome, possibilitando ele selecionar em qual deseja incluir um cadastro, 
dessa forma , nas pesquisas por exemplo de clientes  "MARIA" o sistema terá que filtrar todas as "MARIAS" que esteja cadastrada com 1 das empresas deste usuário logado, exemplo. 

Pensei em fazer da seguinte forma... 
o usuario 1 tem no nome dele a empresa , 1,2,3 (IDs) em uma subtabela 

id_usuario              |     id_empresa              | id_cadastro 
      1 - RENATO               1 - EMPRESA1             11     - MARIA DOS SANTOS 
      1 - RENATO               2 - EMPRESA1             11     - MARIA DOS SANTOS 
      1 - RENATO               3 - EMPRESA1             11     - MARIA DOS SANTOS 
      1 - RENATO               1 - EMPRESA1             108   - RICARDO SOUZA 
      1 - RENATO               2 - EMPRESA1             108   - RICARDO SOUZA 
      1 - RENATO               3 - EMPRESA1             108   - RICARDO SOUZA 

 

*** QUANDO O USUÁRIO LOGAR O SISTEMA VAI GUARDAR OS IDS DAS EMPRESAS EM QUE ELE ESTA CADASTRADO, ASSIM QUANDO ELE FOR INCLUIR ALGO, O SISTEMA DA UM FOR NOS IDS E INCLUI DE ACORDO COM A QTD DE IDS 
*** FAZENDO A REFERENCIA DOS CADASTROS AO IDS DAS EMPRESAS 

ou seja pra cada inclusão do cadastro eu gravo na sub-tabela a mesma quantidade de registros que o usuário tem cadastrado nas empresas, ou seja, se o usuário é cadastrado em 3 empresas eu incluo na tabela para o relacionamento 3 
registros , pensando num sistema grande essa tabela vai crescer bastante não acham??? enfim, daí para fazer a pesquisa seria tipo isso 

"select id_cadatro, subtabela.id_cadastro  from cadastros 
left join subtabela on idsub = id_cad" 

for (ids_cadastrados as subtabela) 
   where " o r" + "subtabela.id_cadastro =  subtabelaid_subtabela " 
endfor 

teria uma maneira melhor? qq vcs acham?? isso vai ocorrer em varias outras tabelas... e assim esse retorno de dados será bem grande, esse intuito é pra resolver o seguinte... 

o cliente vai controlar varias empresas dele no mesmo sistema e ele quer as informações numa só tela, os relatórios das empresas que ele controla, em precisar ta logando em uma determinada empresa, 
sei que eu posso por um SELECT pra ele escolher na hora de fazer um filtro ou na hora de incluir um cadastro, mas queria fazer automático qndo cadastrar um cliente ele ficar visível para as 3 empresas que ele controla 


qq dúvida to por aqui pessoal, já agradeço desde já!!! 
Obg!!! 
bom dia à todos!! 
Oss!! 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • 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!
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.