Hur man strukturerar denna Snapchat-liknande databas


Bästa svaret

provtabeller

Användare – id – användarnamn – e-post – namn – lösenord (saltad och hashad) – andra fält efter behov

Kanaler – 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 – response (like, lol, cry) , arg etc)

Kommentarer

Huvudkravet som kommer att orsaka dig mest huvudvärk kommer att vara den delade delningen . Att dela med alla är enkelt, skicka till kanalen och alla prenumeranter kan se det. Partiell delning är mycket mer problematisk, eftersom användaren skulle behöva välja varje abonnent att dela bilden med. Som du kan föreställa dig är det enkelt med 5 prenumeranter, omöjligt att hantera med 500+ (brytpunkten är sannolikt under det numret).

En möjlig lösning kan vara att skapa någon form av gruppinställning, där användare kan rikta in sig på en grupp. Kanske är det målet baserat på interaktioner med snaps; som en snäpp och läggs till i snaps-gruppen, kommentera och det är en mer inkluderande grupp du läggs till i. Detta kan hanteras automatiskt, kanske också lägga till en lönenivå, vilket gör att du kan tjäna pengar på appen som en intäktsdelning med användaren (standard äppeltyp delas 70 användaren / 30 till appen). Att rikta in sig på en grupp är mycket lättare för användargränssnittet och att begränsa den till tre eller fyra grupper gör det enklare för användaren att rikta in sig.

Mina två cent.

Svar

Från toppen av mitt huvud, som utvecklare, inte databasadministratör, skulle jag rekommendera att du ställer in databasen enligt följande:

== snap\_table ==

snapid | fromuserid | snaptext | snapimage | tidsstämpel

== snap\_to\_friend\_relation\_table ==

id | snapid | touserid

Detta låter dig skicka en snap till flera användare med hjälp av ”snap\_to\_friend\_relation\_table”. Låter det vettigt? Jag kan försöka vara mer detaljerad om det behövs …

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *