Fóruns sobre PHP, JavaScript, HTML, MySQLi, jQuery, Banco de Dados, CSS


Moderador: web

 
Primeiras postagens
Primeiras postagens
Tópico Autor
Mensagens: 3

Design de Banco de Dados

01-10-2009 21:36

Bem, como já dito na descrição do tópico, estou criando um site de música e tenho certas dúvidas em sua organização. Levando em consideração que eu estou completamente enrolado, baixei o DBDesigner4 pra ver se me ajudava em alguma coisa.

Imagem

Esse foi o resultado da minha tentativa em criar um banco de dados com as informações básicas que eu preciso.

O objetivo do site é possuir todas as informações possíveis sobre todas as bandas de rock e metal existentes. Logo, teoricamente, o site tem que possuir informações sobre:
- Bandas (nome da banda, integrantes, ex-integrantes)
- Artistas (nome do artista, se toca algum instrumento e se canta[vocal/back vocal] )
- CDs (nome do cd, informação resumida sobre o cd, tempo de duração, quantidade de músicas)
- Vídeos (nome do vídeo, tempo de duração)
- Músicas (nome da música, tempo de duração)
- Período de Atuação (início e término da banda)
- Estilo Musical (ex: black metal, metalcore, ....)
- Tablaturas e Partituras
- Letras e Traduções
- Fotos (caminho da foto[ex: images/foto.jpg], legenda da foto]
- Agenda de Shows (Data, local, nome do evento)
- Gravadoras (nome da gravadora)
- Compositores (nome do compositor)
- país (nome do país, abreviação)
entre outras possíveis informações...

Na foto acima, obviamente eu não botei nem metade.
Mas o que eu queria entender é o seguinte...

Se cada banda tem muitos artistas (1 para N), e cada artista pode ter várias bandas (1 para N), então o certo seria criar uma tabela separada para juntar Bandas e Artistas (N para N), correto?
Sendo assim, para cada CD, teria uma linha com os campos Banda_ID(recebendo ID_Banda da tabela Banda) e CD_ID (recebendo ID_CD da tabela CD).

Se alguém puder me dar idéias para compor o resto do Banco de Dados e conferir o acima já existente, assim como me dar idéias de como usar tais informações corretamente, estamos ai... Estou procurando gente que curta a idéia de um site de música foda, para botar isso ai pra funcionar a todo vapor. E que se possível entenda de HTML, CSS, Javascript, PHP+Mysql...

Agradeço desde já a todos...
Para quem quiser manter contato....
http://www.orkut.com.br/Main#Profile?ui ... 6502598379
MSN = jack_obrian27@hotmail.com
E-mail = jack.obrian27@gmail.com
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17616
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Design de Banco de Dados

01-10-2009 21:44

Na minha opinião você teria que englobar o grupo maior, ou seja, a banda. Não sei como vai ser seu cadastro ai, mas, você teria que ter cadastrado as bandas, e na hora de adicionar o artista, ter a opção de escolher a banda para ele no select, assim ficaria mais fácil trabalhar, porque você selecionaria todos os artistas de determinada banda e também poderia inverter, selecionar todas as bandas que tenha o artista na linha.
0
A melhor hospedagem para o seu site HostGator!
 
Primeiras postagens
Primeiras postagens
Tópico Autor
Mensagens: 3

Design de Banco de Dados

01-10-2009 21:59

A questão é a seguinte, já estaria bandas, artistas, cds, músicas, tudo cadastrado, o site que acessaria e organizaria as informações na página.

A única coisa é que cada informação é única, como não poderia repetir o nome de uma banda nas tabelas de cds, nem de músicas, e vice-versa, então criei uma tabela só para juntar CDs e Bandas e uma outra para juntar Músicas e CDs.


A tabela Banda-CD possui [ banda_id_cd (chave primária da tabela), banda_id (mesma informação de id_banda, chave primária da tabela Banda), cd_id (mesma informação de id_cd, chave primária da tabela CD) ].

A tabela CD-Musica possui [ cd_id_musica (chave primária da tabela), cd_id (mesma informação de id_cd, chave primária da tabela CD, musica_id (mesma informação de id_musica, chave primária da tabela Musica), num_musica (número da música no cd) ].
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17616
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Design de Banco de Dados

01-10-2009 22:11

Antes de tudo você tem que ver a relação da tabela, ou seja, em uma consulta por banda por exemplo, você teria que selecionar todos artistas que a banda fosse igual a tal. Por isso que dei a dica, ter a base nas bandas, já que é grupo, por exemplo

bandas
id_banda - nome_banda - nome_artista
1 - banda tal - joao

Você adicionaria o artista com a banda relacionada, ai vamos supor que ele participa de outra banda nova, mais uma adição

Dessa forma eu acho que a relação de consulta seria mais fácil.
0
A melhor hospedagem para o seu site HostGator!
 
Primeiras postagens
Primeiras postagens
Tópico Autor
Mensagens: 3

Design de Banco de Dados

02-10-2009 14:04

Entendi, mas ex:

Se eu fizer como falou....
Linha 1 - Banda: Amon Amarth - Artista: artista1
Linha 2 - Banda: Amon Amarth - Artista: artista2

Ai eu tenho o problema que devo evitar, a mesma banda estará repetida 2x no banco de dados, se por acaso eu tiver que mudar o nome dessa banda, terei que mudar em várias linhas.

Agora, fazendo o seguite, resolverá o problema...
TABELA banda
---------------------
id_banda
nome_banda
---------------------

TABELA artista
---------------------
id_artista
nome_artita
---------------------

TABELA band_artist
---------------------------
band_id_art
banda_id
artista_id
---------------------------
A tabela Banda guarda o id e o nome da banda.
A tabela Artista guarda o id e o nome do artista.
A tabela band_artist guarda o id da banda e o id do artista. Assim, cada linha dela seria o relacionamento de 1 artista com 1 banda, seja ele ex-membro dela ou atual, podemos extão criar até uma coluna relação na tabela, sendo os valores (membro/ex-membro).

Logo, apenas o banda_id e o artista_id se repetiriam inúmeras vezes, não causando problema algum, pois seriam apenas chaves estrangeiras que seriam igualadas aos IDs das outras tabelas.... banda_id = id_banda. artista_id = id_artista.

Obs: A criação do banda_id_art foi obrigatório devido a necessidade da criação de uma chave primária.
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17616
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Design de Banco de Dados

02-10-2009 15:50

ah sim, entendi.
0
A melhor hospedagem para o seu site HostGator!

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado