Задать вопрос

Как лучше сделать базу данных?

Добрый день.
Разрабатываю CRM систему которая будет обмениваться данными о компаниях, контактах, счетах и других документах с 1С в формате XML.
Каждая запись в базе данных имеет глобальный идентификатор (GUID) который является первичным ключом таблицы и выводится в XML файле обмена. На сколько оправдано и безопасно использование GUID в качестве первичного ключа и передача его в файле обмена или лучше сделать автоикрементный идентификатор и использовать его только для связи внутри базы данных, а GUID указывать в отдельном поле таблицы и использовать его только для обмена данными?
  • Вопрос задан
  • 391 просмотр
Подписаться 1 Простой Комментировать
Решения вопроса 1
@Dementor
программист, архитектор, аналитик
Ответ лежит на поверхности и упирается в характер связи между БД сайта и 1С, о которой вы умолчали. Что первично - сайт или 1с?

Если первична база 1С, а сайт является всего лишь её фронтэндом, то хранение дополнительного автоинкриментного ключа является очевидно избыточным: он немного, но увеличивает размер базы; он усложняет и замедляет обслуживание сайта (особенно из-за join-ов в запросах - так при наличии GUID вам нужно будет делать лишний запрос к таблице товаров для получения ID и лишь затем сможете запрашивать цены и скидки).

Если первичным есть сайт, где работа налажена с более широким кругом контрагентов и потенциальных клиентов (лидов), чем нужно для 1С, где ассортимент товаров и услуг намного превышает тот объем данных, который нужно выгрузить в бухгалтерскую подсистемы для сдачи отчетности, то очевидна необходимость иметь локальную систему ID, а из 1С подтягивать GUID только нужных позиций и хранить для целей синхронизации, но вовсе не для перекрестных ссылок.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@Fortop
Tech/Team lead
На сколько оправдано и безопасно использование GUID в качестве первичного ключа и передача его в файле обмена


Если вы не планируете масштабировать вашу CRM на десятки серверов, то GUID будет избыточен.

Пока приложение работает с одно БД автоинкримент или генератор последовательностей в рамках сервера БД намного практичнее
Ответ написан
nki
@nki
bezkart.ru готовая система лояльности
Разберитесь, как хранятся данные в 1С. Все элементы справочников и документов уже имеют свой GUID. Вот и используйте его при обменах.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы