Я сделал бы несколько иначе, сохранял в бд примерное следующее:
1. кто, когда и как рисовал
userID - идентификатор пользователя
timeStamp - временная метка
point - координата мышки
2. информация о смене инструмента рисования (кисточки) и настроек инструмента
userID - идентификатор пользователя
timeStamp - временная метка
toolType - тип инструмента (кисточки)
toolSettings - JSON строка с параметрами инструмента(цвет, размер и т.д.) (у разных кисточек могут быть свои, уникальные наборы параметров, поэтому систематизировать не выйдет, и поэтому JSON строка)
Имея такие записи в 2-х таблицах получим:
- в большинстве случаев гораздо меньший объем сохраняемой информации
- возможность undo как для своих действий, так и для действий других пользователей
- возможность в последствии отобразить не только результат совместного творчества, но и сам процесс
- возможность отключать на холсте с результатом как художества отдельных пользователей так и результат применения отдельных инструментов
ЗЫ: от себя добавлю, что для этой задачи в том виде как ее описал я больше подойдут noSQL базы, в которых можно будет обойтись одной коллекцией и несколькими типами записей:
1. запись о смене инструмента
{"action": "changeTool", userID: "xxxxxxx", timeStamp: 0000000000000, toolType:"pen"}
2. запись об изменении параметров инструмента
{"action": "changeToolSettings", userID: "xxxxxxx", timeStamp: 0000000000000, setings: {
тут у каждого инструмента что-то свое, общими наверно будут только цвет и размер
}}
3. запись об пути мазюкания инструментом
{"action": "path", userID: "xxxxxxx", path:[
{timeStamp: 0000000000000, "x": 0, "y": 0},
{timeStamp: 0000000000000, "x": 0, "y": 0},
{timeStamp: 0000000000000, "x": 0, "y": 0},
{timeStamp: 0000000000000, "x": 0, "y": 0},
....
]}