Ir para conteúdo
Fórum Script Brasil
  • 0

duvida sobre relacionamento entre tabelas


KaitoO

Pergunta

Boa noite a todos!

to com uma dúvida

por exemplo

tenho 2 tabelas em meu DB

--
-- Estrutura da tabela `construtora`
--

DROP TABLE IF EXISTS `construtora`;
CREATE TABLE `construtora` (
  `Id_ap` int(11) NOT NULL auto_increment,
  `projeto` text collate latin1_general_cs,
  `imagem` text collate latin1_general_cs,
  `link` text collate latin1_general_cs,
  `estado` text collate latin1_general_cs,
  `cidade` text collate latin1_general_cs,
  `tipo_imovel` text collate latin1_general_cs,
  `area_privativa` text collate latin1_general_cs,
  `fase_obra` text collate latin1_general_cs,
  `valor` text collate latin1_general_cs,
  PRIMARY KEY  (`Id_ap`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_general_cs AUTO_INCREMENT=3;


-- --------------------------------------------------------

--
-- Estrutura da tabela `users`
--

DROP TABLE IF EXISTS `users`;
CREATE TABLE `users` (
  `id` int(11) NOT NULL auto_increment,
  `usuario` varchar(254) collate latin1_general_ci default NULL,
  `senha` varchar(32) collate latin1_general_ci default NULL,
  `nome` text collate latin1_general_ci,
  `ip` text collate latin1_general_ci,
  `favorito` set('1') collate latin1_general_ci default '',
  `Id_ap` int(11) NOT NULL default '0',
  `nome_ap` varchar(255) collate latin1_general_ci default NULL,
  PRIMARY KEY  (`id`),
  KEY `Id_ap` (`Id_ap`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=1;

A operação q deve ocorrer é... q o usuario consiga marcar na listagem dos aps... quais são os favoritos dele... e assim ele guarda nakele campo favorito, mas na listagem quero q apareça o nome do ap e não a ID =x por isso o campo nome_ap

A estrutura ta certa pra fazer tal operação?

Outra dúvida

Nesta mesma pagina que ele marca os favoritos... ele executa uma ação ... seria insert? alter? update?

essas são minhas duvidas... alguém pode me esclarecer?

desde já agradeço :blush:

Editado por KaitoO
Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Oi, 'KaitoO'

Vamos analisar suas tabelas assim:

Primeiro Se você diz:

A operação q deve ocorrer é... q o usuario consiga marcar na listagem dos aps... quais são os favoritos dele... e assim ele guarda nakele campo favorito, mas na listagem quero q apareça o nome do ap e não a ID =x por isso o campo nome_ap
Presumo que também haja varios usuários selecionando o mesmo ap. Sendo assim, a ligação correta é de muitos aps para muitos usuários, e você fez a ligação de um ap para vários usuários.

Segundo, o nome do ap é do ap. Deve estar na tabela de ap. Do jeito que você colocou haverá o nome de um único ap em vários usuários.

Terceiro, depois que você corrigir seu banco transferirei o tópico de volta a PHP pata esclarecer sua última dúvida.

Nesta mesma pagina que ele marca os favoritos... ele executa uma ação ... seria insert? alter? update?

Quarto, Campos auto_increment são positivos, ou seja >= 0, por isso altere os campos para int(10) unsigned not null. Vai economizar 1 byte por campo/registro. Parece pouco mas, se você tiver 1 milhão de registros serão 1MB a menos.

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.


  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...