On Wed, Jun 17, 2015 at 5:27 PM, Pali Rohár <pali.ro...@gmail.com> wrote:

> On Wednesday 17 June 2015 14:20:05 Pali Rohár wrote:
> > On Wednesday 17 June 2015 15:11:22 Joshua Joseph wrote:
> > > > And for handling problem with jabber resource now I got this idea:
> > > >
> > > > What about storing this?
> > > > * protocol
> > > > * account
> > > > * contact
> > > > * from_id
> > > > * to_id
> > > > * from_name
> > > > * to_name
> > > >
> > > > (from|to)_id will be full protcol *dependent* identifier, so jabber
> can
> > > > store full JID "user@host/resource" and account can represent your
> > > > local_id and contact your remote_id.
> > > >
> > > > But do not know now... Any idea? Make sense? At least it could be
> needed
> > > > to modify it to work with multi user group chat correctly...
> > > >
> > >
> > >
> > > Yes this makes sense.
> > >
> >
> > This could probably work for normal 1 vs 1 chat. For group chat it needs
> > fixing... or not ("contact" column as string identifier of group
> > chat/room)? Or maybe using separate table?? Come up with something...
> >
> > Anyway, proper SQL schema with good documentation is required.
> >
> > (And maybe invent better column name for from_id/to_id... if you want to
> > use _id suffix only for foreign keys)
> >
>
> I think that above description should work fine for 1vs1 chat, irc chat,
> jabber MUC and skype group chat too...
>
> Every time in "protocol", "account" and "contact" columns will be stored
> Kopete::Protocol::pluginId(), Kopete::Acount::accountId() and
> Kopete::Contact::contactId() (of remote contact).
>
> In case of jabber MUC in "contact" will be stored MUC room name and in
> case of IRC just irc channel (IRC server e.g. freenode is stored as
> accountId()). And for Skype as contact will be stored some unique string
> (hash?) identifier of group chat session.
>
> Make sense? Or is there any problem? Or some change is needed?
>
> Think twice! Because you are person who will implement it!
>
> To prevent showing Skype unique string (stored in "contact") I would
> propose some "group_name" (or groupchat name, or invent better name)
> column where will be stored human readable name or description of chat.
>
> Maybe merging that group name with "is_group_chat" column could be
> possible (NULL group name means message is not from multi user chat).
>
> --
> Pali Rohár
> pali.ro...@gmail.com
> _______________________________________________
> kopete-devel mailing list
> kopete-devel@kde.org
> https://mail.kde.org/mailman/listinfo/kopete-devel
>


Here is an update to the schema:

--Groups table:

CREATE TABLE "groups"(
"group_id" Integer Primary Key Autoincrement  NOT NULL  ,    --Unique
identifier for the group
"group_name" Text, -- The internal name of the group
"description" Text  ,   -- A human readable description of the group
"subject" Text  ,    -- Topic being discussed.
);


-- Messages Table
CREATE TABLE "messages"(
"message_id" Integer Primary Key Autoincrement  NOT NULL  ,    --- Date and
time of the message
"timestamp" Text  ,      "message" Text  ,   --The content of the message
in HTML format
 "protocol" Text  ,  -- Protocol in use
 "account" Text, -- Identifier of *local* account where the message belongs
 "contact" Text, --If applicable, the identifier of the *remote* party
"local_name" Text  ,   -- Human readable contact Name (Local)
"remote_name" Text  ,    -- Human readable contact Name (Remote), if
applicable
"importance" Integer  , -- (Low = 0, High = 1, Highlight = 2)
 "group_id" Text  ,    -- If this is a group message, this will hold the
group id. If null, this is not a group message
 "direction" Integer  ,   -- (Inbound = 0, Outbound = 1, Internal = 2)
 "state" Integer, --(Unknown = 0, Sending = 1, Sent = 2, Error = 3)
 "subject" Text -- If applicable, the subject of this message
 ""
 );

I hope it makes more sense now.

-- 
Thanks,
Joshua
_______________________________________________
kopete-devel mailing list
kopete-devel@kde.org
https://mail.kde.org/mailman/listinfo/kopete-devel

Reply via email to