How do we decide what the smallest unit is? For text collaboration should it be a word, a paragraph?
Is there going to be performance issues if the unit is too small? But it might be more flexible
How do we decide what the smallest unit is? For text collaboration should it be a word, a paragraph?
Is there going to be performance issues if the unit is too small? But it might be more flexible
Implementing the multi-user interactive editing capabilities of Google Wave probably requires a unique data structure, not something that fits into a conventional relational database.
It all depends on your needs, of course. Do you want to recover the full history of a document? Or the order in which a user typed it? How many users? How many documents? All of these things will impact the data model.
Depends on what your goals are.
A "message" (one user to another) seems like a good unit.
You'd attach other stuff to that message, of course, like timestamp, session id, to-user, from-user -- whatever is necessary to reconstruct what actually happened.