2017-02-02 1 views
0

Nur um einen Thread zu starten, um WhatsApp Datenbank-Design in NoSQL zu diskutieren. Ich habe eine Datenbank für grundlegende Funktionen (Chat-Liste, Freundesliste, Chat) in Cassandra entworfen.Basic WhatsApp Datenbank-Design in Cassandra

create table friendship(user_id,friend_id,friend_name,mobile_no,status,primary key((user_id),friend_id)) 

create table chat_list(user_id,message_time,friend_id,last_message,unread_count,primary key((user_id),(message_time))) 

create table chat(user_id,friend_id,message_time,message,primary key((user_id,friend_id),message_time)) 

Bitte geben Sie einen Kommentar, wenn es besser gestaltet werden kann.

Antwort

2

Sie können diese Frage nicht allgemein beantworten. In Cassandra müssen Sie ein Query-First-Design verwenden - basierend auf jeder erforderlichen Abfrage können Sie mit dem Entwurf der stark denormalisierten Tabellen beginnen.

http://www.datastax.com/dev/blog/basic-rules-of-cassandra-data-modeling

+0

Das ist, was ich getan haben, müssen wir für den Kontakt für einen Benutzer Auflistung abzufragen, die von ersten Tisch serviert wird, Chat-Abfrage die Auflistung wird von der zweiten Tabelle und dritten Tisch serviert wird verwendet für Chat mit einem Partikel Freund. – Nishat

+0

O.K. Für diese 3 Abfragen würde ich es auf die gleiche Weise implementieren. Sie können auch eine Bestellbestellung für die Zeitstempel festlegen ... – itstata