Hardevsinh Mori Ответов: 4

Как уменьшить дублирование данных, когда база данных является удаленным файлом?


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

Например.
Машина 1 доступ к таблице студент и вставить новый номер записи как 1
Машина 2 доступ к таблице студент и вставить новый номер записи как 1

Что я уже пробовал:

Я дал первичный ключ к этому полю, но он не работает

4 Ответов

Рейтинг:
34

OriginalGriff

Два варианта:
1) Используйте поле идентификации: IDENTITY (Property) (Transact-SQL) | Microsoft Docs[^]- затем БД берет на себя управление столбцом и присваивает вам значения, чтобы не было дублирования.
2) Используйте поле UNIQUEIDENTIFER: uniqueidentifier (Transact-SQL) | Microsoft Docs[^] и установите его значение из вашего кода C# через Guid (или установите свойство столбца по умолчанию в NEWID: NEWID (Transact-SQL) | Microsoft Docs[^] )


Рейтинг:
2

RickZeeland

Это странно, а ПЕРВИЧНЫЙ КЛЮЧ автоматически имеет уникальное ограничение, определенное на нем. Видеть: Ограничение первичного ключа SQL[^]
Вы уверены, что пользователи используют одну и ту же базу данных и таблицу ?
Но, вероятно, лучше всего использовать ИДЕНТИЧНОСТЬ, видеть: SQL автоматическое увеличение поля[^]


Рейтинг:
2

Moin 10918476

С помощью

composite key
мы можем уменьшить дублирование при передаче данных с одной машины на другую.


Рейтинг:
1

Manav Pandya

Я уже сталкивался с такой ситуацией

Попробуйте использовать уникальный или автоматический инкремент