Pergunta

Estou tentando organizar minhas fotos e criar um front end Ajax. Eu tenho muitas fotos e um site de hospedagem existente que é pago que possui muito espaço em disco, por isso não quero pagar para armazenar na web Picasa ou alternativa.

Estou criando um site ASP.NET para visualizar essas fotos, mas estou tentando determinar o melhor esquema para armazenar. A tem algumas questões fundamentais:

Fotos
Álbuns
Tags (talvez)

Algumas perguntas: 1. Eu tenho uma mesa separada para cada álbum ou todas as fotos em uma foto. As tabelas separadas seriam idênticas, então eu tentando determinar se há algum benefício para esta separação 2. Existe algum grande benefício de usar o SQL Server versus MySQL (essas são minhas escolhas neste caso) para este esquema. Eu não acho que estou fazendo nada para imaginar.

Foi útil?

Solução

Você deve colocar todas as fotos em uma mesa, onde você tem 1: n com chave estrangeira para álbuns, como

Photos | id, title, url, description, album
Albums | id, title, description

onde o álbum é a chave estrangeira para Albums.id

Sobre tags, você provavelmente quer ter muitas tags para uma foto, de modo que seria n: n, onde você precisa de outra tabela para se juntar a esses dois, então você tem

Tags | id, name
Photo_Tag | id, id_tag, id_photo

Onde id_tag e id_photo são chaves estrangeiras para Tag.id respectivo Photo.id

Se você está fazendo o projeto apenas para uso pessoal, acho que o MySQL se sairia muito bem.

Outras dicas

Uma tabela para álbuns (id, nome, descrição), uma tabela para fotos (id, nome, descrição, fotodata, Parentalbum), você não terá benefícios e muita complexidade se você se dividir em tabelas diferentes por álbum. Se você deseja que as fotos pertencem a vários álbuns, use uma tabela de link para os álbuns 1: n de relacionamento: fotos em vez de ter o ID do álbum como parte da foto. Se você optar por tags decidir se deseja marcar as fotos ou álbuns (ou ambos), talvez vá para uma tabela de tags e uma tabela de mapeamento 1: n para albumtags e fototags

No que diz respeito à escolha do banco de dados, o único diferencial nesse nível é o custo, então vá com o que você sabe melhor (se você tem os dois disponíveis pelo mesmo preço).

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top