Como criar os bancos de dados para sites DB de Animes/Séries?

31/03/2020

0

Boa noite!

Estou criando um site e Banco de Dados/Listagem de anime (série de animação), parecido com o My Anime List (https://myanimelist.net), AniList (https://anilist.co) e Kitsu (https://kitsu.io). Estou com dificuldades e grandes dúvidas na criação do banco de dados.
Sei criar o sistema de cadastro/login porém não sei como funcionaria o armazenamento da lista de animes de cada usuário no banco de dados. Acredito que ao criar o cadastro de cada usuário eu deveria inserir uma função para criar automaticamente um banco de dados exclusivo para cada usuário, onde ficaria armazenado os animes desse individuo... ou seria de outra forma? Vou deixar um esquema do funcionamento desses sites para quem não conhece:

Cada usuário possui um Painel onde pode deixar organizados os animes que está assistindo ou já assistiu. A lista é dividida entre nas categorias 'Assistindo', 'Pausados', 'Dropados' e 'Planos para o Futuro'. Dessa forma temos:

Usuário X >> Lista de anime

Quando um usuário se cadastra, crio uma linha no bando de dados usuário. Devo inserir a função para criar junto um banco de dados individual para cada usuário? Se alguém souber, agradeço se deixar um exemplo!
Reinaldo Guedes

Reinaldo Guedes

Responder

Post mais votado

26/05/2020

Olá Reinaldo Guedes,
Vi a maneira que você pensou, de criar banco da dados exclusivos para cada usuário, mas creio que você se referiu erroneamente, na verdade seria uma tabela no banco de dados para cada usuário, mas enfim, concorda que se tivesse 5 usuários seria tranquilo fazer isso, mas pensando em um alto acesso isso seria bem ruim?
Um jeito de fazer isso, é você criar uma tabela animeUsuario que vai fazer esse serviço pra ti sem ter muito processamento.
Olhando aqui seria uma arquitetura simples.

Tabelas:
- usuario;
- anime;
- animeUsuario;

Estrutura:
--- usuario ---
idUsuario - PK - INT - AUTO_INCREMENT - NOT NULL
nome - VARCHAR(100)
usuario - VARCHAR(100)
senha - VARCHAR(100)

--- anime ---
idAnime - PK - INT - AUTO_INCREMENT - NOT NULL
titulo - VARCHAR(100)

--- animeUsuario ---
idAnimeUsuario - PK - INT - AUTO_INCREMENT - NOT NULL
idUsuario - FK usuario
idAnime - FK anime
status - CHAR(1) (A - ASSISTIDO, E - EM ANDAMENTO, ETC...)

Então você tem nessa tabela a relação dos usuários com as séries assistidas por eles.
Espero ter ajudado.

Gustavo Mendes

Gustavo Mendes
Responder

Mais Posts

27/05/2020

Reinaldo Guedes

Olá Reinaldo Guedes,
Vi a maneira que você pensou, de criar banco da dados exclusivos para cada usuário, mas creio que você se referiu erroneamente, na verdade seria uma tabela no banco de dados para cada usuário, mas enfim, concorda que se tivesse 5 usuários seria tranquilo fazer isso, mas pensando em um alto acesso isso seria bem ruim?
Um jeito de fazer isso, é você criar uma tabela animeUsuario que vai fazer esse serviço pra ti sem ter muito processamento.
Olhando aqui seria uma arquitetura simples.

Tabelas:
- usuario;
- anime;
- animeUsuario;

Estrutura:
--- usuario ---
idUsuario - PK - INT - AUTO_INCREMENT - NOT NULL
nome - VARCHAR(100)
usuario - VARCHAR(100)
senha - VARCHAR(100)

--- anime ---
idAnime - PK - INT - AUTO_INCREMENT - NOT NULL
titulo - VARCHAR(100)

--- animeUsuario ---
idAnimeUsuario - PK - INT - AUTO_INCREMENT - NOT NULL
idUsuario - FK usuario
idAnime - FK anime
status - CHAR(1) (A - ASSISTIDO, E - EM ANDAMENTO, ETC...)

Então você tem nessa tabela a relação dos usuários com as séries assistidas por eles.
Espero ter ajudado.


Muito obrigado, me ajudou bastante. Tenho só mais uma dúvida... Como eu faria neste caso para exibir essa lista no painel do usuário? Eu exibiria todos os "idAnimeUsuario"?
Responder

28/05/2020

Gustavo Mendes

Muito obrigado, me ajudou bastante. Tenho só mais uma dúvida... Como eu faria neste caso para exibir essa lista no painel do usuário? Eu exibiria todos os "idAnimeUsuario"?


Isso, mas filtrando por usuário.

SELECT
*
FROM
    animeUsuario
WHERE
   idUsuario = 'id do usuário logado'


Assim você teria todos os animes que esse usuário tem na lista dele.
Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar