Melhor resposta
exemplos de tabelas
Usuários – id – nome de usuário – email – nome – senha (com sal e hash) – outros campos conforme necessário
Canais – user\_id – channel\_title – friend\_id
Snaps – id – user\_id – title – caption – date
Channel\_Subscribers – channel\_id – user\_id
Snap\_Reaction – snap\_id – user\_id – reação (like, lol, cry , com raiva, etc)
Comentários
O principal requisito que lhe causará mais dores de cabeça será o compartilhamento parcial . Compartilhar com todos é fácil, poste no canal e todos os assinantes poderão ver. O compartilhamento parcial é muito mais problemático, porque o usuário precisaria escolher cada assinante com o qual compartilhar a imagem. Como você pode imaginar, é simples com 5 assinantes, impossível de gerenciar com mais de 500 (o ponto de ruptura provavelmente está abaixo desse número).
Uma possível solução pode ser criar algum tipo de configuração de grupo, onde os usuários poderia ter como alvo um grupo. Talvez esse alvo seja baseado em interações com os instantâneos; como um instantâneo e seja adicionado ao grupo de instantâneos, comente e é um grupo mais inclusivo ao qual você é adicionado. Isso poderia ser gerenciado automaticamente, talvez adicionando um nível de pagamento também, o que permitiria monetizar o aplicativo como uma divisão da receita com o usuário (tipo apple padrão dividido 70 por usuário / 30 para o aplicativo). Segmentar um grupo é muito mais fácil na IU e limitá-lo a 3 ou 4 grupos torna a segmentação mais simples para o usuário.
Meus dois centavos.
Resposta
Pensando bem, como desenvolvedor, não administrador de banco de dados, recomendo que você configure o banco de dados da seguinte maneira:
== snap\_table ==
snapid | fromuserid | snaptext | snapimage | timestamp
== snap\_to\_friend\_relation\_table ==
id | snapid | touserid
Isso permite que você envie um snap para vários usuários usando o “snap\_to\_friend\_relation\_table”. Isso faz sentido? Posso tentar ser mais detalhado, se necessário….