raonibs 64 Denunciar post Postado Novembro 20, 2013 Estou modelando um bd e tenho a seguinte situação. - uma tabela imagens - uma tabela posts Tanto as imagens quanto os posts vão ter comentários, na verdade além dessas existem muitos outras tabelas vão ter comentários relacionados. Estou em duvida quanto a abordagem mais adequada. Pensei no seguinte: Abordagem 1 tabelas comentários separadas para cada tipo ficando algo como: - uma tabela comentarios_imagens - uma tabela comentarios_posts - etc. Neste caso vou ter muitas tabelas de comentarios. Abordagem 2 Uma unica tabela comentário que recebe em um campo a tabela com o qual o comentário esta relacionado. - tabela comentarios. -coluna relacionadoNomeTabela -coluna chaveEstrangeira //A chave é referente a tabela estabelecida na coluna relacionadoNomeTabela Neste caso tenho apenas uma tabela comentários, mas não tenho certeza se é uma boa pratica ja que o relacionamento não fica evidente Também não tenho como definir o campo especificamente como uma chave composta embora essa particularidade não seja importante. Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Novembro 20, 2013 Talvez seja o caso de uma abordagem NoSql ( not only sql) Compartilhar este post Link para o post Compartilhar em outros sites
Fabiano Abreu 22 Denunciar post Postado Novembro 20, 2013 Olá Raoni, Eu optaria por uma única tabela, mas isso depende da quantidade de tabelas, controlar 20 tabelas em uma única pode dar mais trabalho do que ter uma tabela para cada tipo de comentário. _ _ Fabiano Abreu Papo SQL Compartilhar este post Link para o post Compartilhar em outros sites
raonibs 64 Denunciar post Postado Novembro 20, 2013 Pessoal obrigado pelas respostas. Vamos lá. Motta, NoSQL seria mais adequado, na verdade esta aplicação será oferecida como um serviço de web com assinatura mensal e neste ponto usará NoSQL porém também vai ser disponibilizada Free para download e deve ser compatível com PDO do PHP já que a maioria das hospedagens não possui NoSQL. Fabiano Abreu, São aproximadamente 60 tabelas 2/3 dela vão precisar de comentários. O problema que vejo em dividir em tipos vai ser que o numero de tabelas vai pular de 60 para 100. Compartilhar este post Link para o post Compartilhar em outros sites
raonibs 64 Denunciar post Postado Novembro 21, 2013 Estou fazendo da seguinte maneira: Colocando um prefixo no nome das tabelas de forma a simular os módulos da aplicação, então tenho algumas tabelas imagens_xxxxxx e outras posts_xxxxxx. Desse jeito vou duplicar outras tabelas além das de comentário mas acredito que vai ficar mais organizado e facilitar a escalabilidade modular. também vai ficar mais simples de pensar esta modelagem que esta muito complexa. Agradeço aos dois pelas dicas. Compartilhar este post Link para o post Compartilhar em outros sites