Mejor respuesta
tablas de muestra
Usuarios – id – nombre de usuario – correo electrónico – nombre – contraseña (con sal y hash) – otros campos según sea necesario
Canales – user\_id – channel\_title – friend\_id
Snaps – id – user\_id – título – título – fecha
Channel\_Subscribers – channel\_id – user\_id
Snap\_Reaction – snap\_id – user\_id – reacción (como, lol, cry , enojado, etc.)
Comentarios
El requisito principal que le causará más dolores de cabeza será la participación parcial . Compartir con todos es fácil, publique en el canal y todos los suscriptores podrán verlo. La participación parcial es mucho más problemática, porque el usuario tendría que elegir a cada suscriptor con quien compartir la imagen. Como puede imaginar, es simple con 5 suscriptores, imposible de administrar con más de 500 (el punto de ruptura probablemente esté por debajo de ese número).
Una posible solución podría ser crear algún tipo de configuración de grupo, donde los usuarios podría apuntar a un grupo. Tal vez ese objetivo se base en interacciones con las instantáneas; como un complemento y se agrega al grupo de instantáneas, comenta y es un grupo más inclusivo al que se agrega. Esto podría administrarse automáticamente, quizás agregando un nivel de pago también, lo que le permitiría monetizar la aplicación como una participación en los ingresos con el usuario (el tipo de manzana estándar divide 70 el usuario / 30 a la aplicación). Apuntar a un grupo es mucho más fácil en la interfaz de usuario y limitarlo a 3 o 4 grupos hace que la orientación sea más sencilla para el usuario.
Mi granito de arena.
Respuesta
Fuera de mi cabeza, como desarrollador, no administrador de base de datos, le recomendaría configurar la base de datos de la siguiente manera:
== snap\_table ==
snapid | fromuserid | snaptext | snapimage | marca de tiempo
== snap\_to\_friend\_relation\_table ==
id | snapid | touserid
Esto le permite enviar un snap a múltiples usuarios usando el «snap\_to\_friend\_relation\_table». ¿Tiene sentido? Puedo intentar ser más detallado si es necesario….