Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Handoncloudsys

Dificuldade em ações para amigos (IDs separados por vírgulas, explode,

Recommended Posts

[...]era quando eu usava outra tabela para guardar os dados de amizade com usuários, e depois pensei se isso tornasse uma bagunça, cheia de rows, então resolvi tornar-lôs em apenas uma coluna dentro da tabela onde permanecem os dados dos usuários, "friends", nessa coluna estariam IDs dos usuários amigos, todos separados por vírgulas:

É a pior decisão que você poderia ter feito.

 

Você estava na direção certa. Agora está na confusão.

 

Leia sobre Normalização de Dados, em especial a Primeira Forma Normal

 

Veja, neste meu artigo, como modelar seu banco corretamente:

http://rberaldo.com.br/usando-campos-multivalorados/

Compartilhar este post


Link para o post
Compartilhar em outros sites

[...]só que ainda continuo preocupado com o peso[...]

[...]O peso não tem problema, né, cara?

Sim e não. Check list:

 

1º - É um banco de dados relacional;

2º - Criado para tratar relacionamentos;

3º - O peso é muito mais voltado para a falta de integridade do que quantidade de tabelas;

4º - Não utilizar relacionamentos, é um modo de não garantir integridade;

5º - Adicionar todos os IDs em uma única coluna é uma falta de integridade.

 

Se quiser pensar em peso, pense em integridade e na Normalização de Dados. Manter um dados normalizado e com alta integridade garantirão o melhor desempenho para àquela quantidade de dados.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso mesmo que o Gabriel flw...

 

Mas caso vc tenha um outro problema com uma array daquela forma.. vc pode utilizar isso aqui..

<?php
	$lista = ",,5,6,7,8,9,";
	
	$aux = explode(",",$lista);
	
	$total = count($aux);
	$nova_lista = "";
	
	for ($i=0; $i<$total; $i++) {
		if ($aux[$i] != NULL ) {
			if ($nova_lista == "") {
				$nova_lista = $aux[$i];
			} else {
				$nova_lista .= ",".$aux[$i];
			}
		}
	}
	
	echo $nova_lista;
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

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