Как сделать однопользовательское приложение многопользовательским? - PullRequest
1 голос
/ 24 июня 2010

Несколько лет назад я создал простое приложение для отслеживания моего ежедневного статуса. Ничего особенного, вы просто добавляете строку, она вставляется в дату, я бы поставил время начала, время окончания и то, что я сделал. Все смеялись, но я держал это в течение 3 лет. Теперь начальник видит, насколько я «организован» (это просто длинная таблица), и хочет, чтобы я расширил приложение для всей команды. Он также хотел бы видеть представление списка, которое у нас есть, так что для этого потребуется каким-то образом сделать его разделяемой БД. Сейчас я использую SQlite, так как все это на моей машине, так как мне расширить это приложение.

Я ищу идеи, так что все приветствуются.

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

Ответы [ 4 ]

3 голосов
/ 24 июня 2010

Идеи:

  • Введите идентификационный номер пользователя в записи БД (или строку, представляющую их уникальное имя пользователя), чтобы пометить строки тем, кому они принадлежат.

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

  • Если у вас есть бизнес-объект, поставьтеСвойство .UserId позволяет отслеживать текущего пользователя.

  • Когда пользователь «входит», отслеживайте его идентификатор пользователя, чтобы отфильтровать данные базы данных, используя WHERE userid = 5

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

Обновление:

Если ваша старая таблица БД выглядела как

TaskId | Start Time  | Length   | Description |

1        10:45 Feb 3   20 min     finish the code
2        10:45 Feb 5   5 m        delete comments
3        10:45 jan 8   2 hr       meeting

, тогда моя идея предложила что-то с добавленным столбцом 'usreid', например:

Userid | TaskId | Start Time  | Length   | Description |

10     | 1        10:45 Feb 3   20 min     finish the code
15     | 2        10:45 Feb 5   5 m        delete comments
30     | 3       10:45 jan 8   2 hr       meeting

и у вас может быть таблица поддержки пользователя, например:

UserId | Username | Full name
10       bob1     | Bob Smith
15       mnmn     | Guest user
30       sarah55  | Sarah Baker
0 голосов
/ 24 июня 2010

вам нужно переместить приложение на централизованный сервер БД.Желательно полноценная база данных.Это будет обрабатывать параллелизм для вас.

0 голосов
/ 24 июня 2010

Вот шаги, которые я бы предпринял:

  1. Создание таблицы «Пользователи / Люди» для хранения отдельных пользователей. Столбцы могут включать: имя (имя и фамилия), должность, номер телефона и т. Д.). Каждая строка должна иметь уникальный идентификатор (я рекомендую столбец uniqueidentifier или IDENTITY int.
  2. Добавьте в таблицу столбец, содержащий ваши данные о состоянии. Это должно быть того же типа, что и поле уникального идентификатора в таблице Users. если столбец в пользователях называется ID, то UserID - это хорошее имя.
  3. Создание отношения внешнего ключа между первичным ключом таблицы Users и новым столбцом таблицы 'status'.

НТН

0 голосов
/ 24 июня 2010

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

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