Дизайн базы данных, несколько типов клиентов в одной таблице - PullRequest
1 голос
/ 31 октября 2011

Бизнес-сценарий:

  • Клиенты могут войти в онлайн-приложение электронной коммерции, используя свои адреса электронной почты в качестве логинов.

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

Технически: нет ничего «естественного» создания PK в таблице Customer.Несмотря на это, я всегда использую искусственный ПК, даже если его нет.Я беспокоюсь, что это в конечном итоге приведет к проблемам в поиске, целостности и т. Д. Однако я не могу точно определить, какие проблемы возникнут.

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

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

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

Спасибо

1 Ответ

1 голос
/ 31 октября 2011

Есть ли конкретная причина для объединения этих данных в одну таблицу? Разделяют ли «клиенты» и клиенты электронной коммерции CRM другие таблицы в этой базе данных?

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

Из информации, которую вы включили здесь, я не думаю, что вы теряете что-либо существенное, создавая отдельную базу данных и таблицу для клиентов электронной коммерции. Храните несвязанные данные отдельно.

Edit:

Чтобы прояснить это: если ваши клиенты электронной коммерции не делятся большим количеством данных с клиентами CRM, создайте новые таблицы клиентов . Если они делят много данных, то один нулевой столбец, вероятно, не конец света.

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