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

MySQL

PHP

31/03/2020

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

Curtidas 0

Melhor post

Gustavo Mendes

Gustavo Mendes

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.
GOSTEI 1

Mais Respostas

Reinaldo Guedes

Reinaldo Guedes

31/03/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.


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"?
GOSTEI 0
Gustavo Mendes

Gustavo Mendes

31/03/2020

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.
GOSTEI 0
POSTAR