Проектирование базы данных - Приложение справочной службы - PullRequest
1 голос
/ 07 июня 2011

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

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

Мы также можем получать вопросы от зарегистрированных клиентов и незарегистрированных клиентов.

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

Если мы отделим приложение службы поддержки, резервная копия нашей базы данных также будет меньше.,Или просто сохраните приложение службы поддержки в той же базе данных, что значительно упрощает разработку / интеграцию, а также резервное копирование только 1 базы данных.(может быть больше, но все же 1 база данных со всем)

Что вы будете делать?

Ответы [ 2 ]

2 голосов
/ 07 июня 2011

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

Это в основном основано на том, что я видел в профессиональном программном обеспечении регистрации вызовов / тикетов, но у меня есть еще одна веская причина - безопасность - логика следующая:

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

  • Принцип 1: Сокращение площади поверхности атаки за счет ограничения хранимых данных. Как правило, я согласен с принципом, что вы должны ТОЛЬКО собирать данные, которые вам абсолютно необходимы. Наличие менее конфиденциальной информации означает меньше, чем злоумышленник может украсть.

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

  • Принцип 3: Наименее привилегия. Пользователь, которого вы настроили для базы данных программного обеспечения службы поддержки, должен иметь доступ ТОЛЬКО к тем данным, которые абсолютно необходимы вашим аналитикам службы поддержки. Достигнуть этого легче, если вы разрабатываете свою базу данных с учетом конкретного набора потребностей. С точки зрения обслуживания гораздо сложнее настроить представления и хранимые процедуры для конфиденциальных данных, чтобы разрешить доступ только к нечувствительным данным, чем создать базу данных, в которой есть только те данные, которые вам нужны.

Конечно, я, может быть, слишком обдумываю это. И есть другие веские причины для того, чтобы идти по любому пути. Я просто пытаюсь дать вам кое-что, о чем подумать.

1 голос
/ 07 июня 2011

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

  • Переносимость - если вы решите перенести службу поддержки на другой сервер, вы можете без проблем.То же самое верно, если вы хотите переместить корпоративную базу данных в другое место
  • Разделение задач - каждая база данных разработана для своих собственных целей.Безопасность одного не будет мешать безопасности другого.
  • Политики резервного копирования. В настоящее время вы можете иметь только одну политику резервного копирования для обеих систем, поскольку они находятся в одной базе данных.Если вы разделите их, вы сможете создавать резервные копии одного чаще, чем другого (и резервное копирование будет меньше / быстрее).

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

...