Как правильно организовать общение двух клиентов за одним столом? - PullRequest
0 голосов
/ 06 ноября 2010

Я использую PostgreSQL в качестве базы данных и C++ with Qt для моего клиента. Несколько клиентов могут подключиться к базе данных одновременно и начать редактирование одной таблицы. Как правильно организовать этот процесс?

Последнее, к чему я пришел, это отредактировать кэшированную таблицу на стороне клиента, иметь отдельную таблицу в базе данных с последним изменением таблицы времени и выполнить какую-то diff процедуру при фиксации.

Ответы [ 3 ]

1 голос
/ 06 ноября 2010

Пожалуйста, избегайте различий по меткам времени.

используйте блокировку строк, если вам это нужно.используйте последовательности, полученные из базы данных, выполняйте запросы как можно чаще, избегая проблем с производительностью.

edit:

см. синтаксис SELECT FOR UPDATE для параметров блокировки строк.

последовательности генерируются, гарантированно будут уникальными числовыми значениями, управляемыми базой данных.это слой, который вам нужен для управления параллелизмом.

0 голосов
/ 06 ноября 2010

Прочтите главу 13 «Управление параллелизмом» из руководства.

0 голосов
/ 06 ноября 2010

Или используйте средний уровень и уровень транзакций для поддержки ACID.

Не думаю, что ваш дизайн будет хорошо масштабироваться

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...