управление двумя копиями данных - PullRequest
0 голосов
/ 03 ноября 2011

У меня есть процесс cron, который периодически читает несколько общедоступных веб-сайтов и сохраняет данные в базе данных. Собранные данные затем публикуются на моем сайте.

Эти данные представлены набором связанных моделей в django.

Мне нужно иметь два набора данных: один опубликован, а другой только что собран процессом cron. После того, как последний был проверен вручную на точность, мне нужно сделать его публичным и удалить набор, который был общедоступным ранее.

Я вижу два способа сделать это:

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

у каждого есть свои недостатки и преимущества.

Кто-нибудь реализовывал нечто подобное раньше? Любой совет, как сделать это элегантно?

1 Ответ

0 голосов
/ 04 ноября 2011

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

По сути, у вас есть два способа защиты ваших данных:

  1. приложение ограничивает доступ к данным.
  2. база данных ограничивает доступ к данным (с пользователями, представлениями и оценками)

Вы можете реализовать защиту приложения (1) или защиту приложения + базы данных (1 + 2).

Одной базы данных может быть достаточно, если ваш дизайн безопасности верен, но, возможно, вы собираете огромные данные (несколько терабайт) и хотите разделить нагрузку на базу данных на два сервера.На самом деле, этот вопрос имеет много параметров.

Уолл, это упражнение синтеза.

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