Использование других методов для генерации первичных ключей
Использование других методов для генерации первичных ключей
Вовсе не обязательно, чтобы каждая таблица имела первичный ключ, но в практическом отношении желательно, чтобы было именно так. Важность первичного ключа в таблице трудно переоценить. Как отмечалось в предыдущей главе, с помощью первичных ключей очень просто выполнять операции объединения нескольких таблиц в запросе. Первичный ключ можно также использовать для указания на запись в пользовательском интерфейсе. Применяя первичный ключ в передаче записи от одной процедуры к другой, можно свести к минимуму количество передаваемых данных, принадлежащих записи. Существует несколько альтернативных способов генерации первичного ключа.
• Первый вариант — генерация случайного значения в поле первичного ключа для каждой создаваемой записи. Этот способ используется таблицами, содержащими поля AutoNumber, которые преобразованы при переносе данных из Microsoft Access в SQL Server. Он также используется при репликации баз данных Access для устранения коллизий между записями, которые вводятся неподключенными пользователями.
• Второй вариант — сохранение значения счетчика во временной таблице и использование этого значения для создания каждого нового первичного ключа создаваемой записи. При этом необходимо использовать транзакцию, которая считывает текущее значение из таблицы счетчика, определяет с его помощью первичный ключ новой записи и увеличивает значение в таблице счетчика. Причем все эти действия представляют собой одну атомарную операцию. При использовании этой технологии есть одно преимущество: соблюдается последовательность значений первичного ключа. К недостаткам (по сравнению с простым созданием идентификационного поля) можно отнести необходимость написания хранимой процедуры и добавления нужных таблиц к базе данных. Сохранение значения счетчика в одной таблице также может привести к возникновению конфликтов при одновременном доступе к ней, что может вызвать проблемы с производительностью в интенсивно используемой системе.
• Третий вариант — создание первичного ключа на основе данных. Например, пер вичный ключ для записи клиента Vito Polito может иметь вид VP001. Для другого клиента с аналогичными инициалами ключ будет иметь вид VP002 и т.д. К преимуществам можно отнести ассоциацию ключа с данными, а к недостаткам – необходимость создания дополнительного кода в виде хранимых процедур.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Генераторы - лучшие друзья первичных ключей
Генераторы - лучшие друзья первичных ключей Надо сказать несколько слов о реализации первичного ключа. Так как он предназначен для обеспечения уникальности, то никакие две записи в одной таблице не могут иметь одинаковых значений этого ключа. То есть, чтобы
Глава 14 Оформление и учет первичных документов
Глава 14 Оформление и учет первичных документов К достоинствам программы «1С: Предприятие 7.7» можно отнести возможность оформления большого количества первичных документов, таких как платежное поручение, приходный и расходный кассовые ордера, доверенность, авансовый
Использование некоторых ключей реестра
Использование некоторых ключей реестра Добавление элементов в контекстное меню "Создать"1. Создать новый документ, поместить его в папку Windows/ShellNew2. В редакторе реестра найти расширение этого файла, добавить новый подключ, добавить туда строку: FileName в качестве значения
Создание методов
Создание методов Методы представляют собой обычные процедуры типов Sub и Function, которым выпало разместиться в модуле класса. Конечно, в большинстве случаев метод должен делать нечто, напрямую связанное с самим объектом, преобразуя данные, хранимые объектом. Но, при желании,
1.6.14. Правило генерации: избегайте кодирования вручную; если есть возможность, пишите программы для создания программ
1.6.14. Правило генерации: избегайте кодирования вручную; если есть возможность, пишите программы для создания программ Известно, что люди плохо справляются с деталями. Соответственно, любой вид ручного создания программ является источником задержек и ошибок. Чем проще и
1.6.14. Правило генерации: избегайте кодирования вручную; если есть возможность, пишите программы для создания программ
1.6.14. Правило генерации: избегайте кодирования вручную; если есть возможность, пишите программы для создания программ Известно, что люди плохо справляются с деталями. Соответственно, любой вид ручного создания программ является источником задержек и ошибок. Чем проще и
Перегрузка методов
Перегрузка методов Подобно другим объектно-ориентированным языкам, язык C# позволяет типу перегружать его методы. Говоря простыми словами, когда класс имеет несколько членов с одинаковыми именами, отличающихся только числом (или типом) параметров, соответствующий член
Генерации объектов
Генерации объектов Когда среда CLR пытается найти недоступные объекты, это не значит, что будет рассмотрен буквально каждый объект, размещенный в управляемой динамической памяти. Очевидно, что это требовало бы слишком много времени, особенно в реальных (т.е. больших)
Отображение методов
Отображение методов Мы модифицируем класс Program, чтобы определить ряд статических методов, каждый из которых будет иметь один параметр System.Type и возвращать void. Начнем с метода ListMethods(), который (как вы можете догадаться сами) печатает имена всех методов, определенных
Асинхронный вызов методов
Асинхронный вызов методов Чтобы дать указание делегату BinaryOp вызвать метод Add() асинхронно, измените предыдущий метод Main() так, как показано ниже.static void Main(string[] args) { Console.WriteLine("***** асинхронный вызов делегата *****"); // Вывод ID выполняемого потока. Console.WriteLine("Вызван Main() в потоке
8.6. Совместное использование данных из связки ключей в нескольких приложениях
8.6. Совместное использование данных из связки ключей в нескольких приложениях Постановка задачи Требуется, чтобы хранилищем данных связки ключей могли пользоваться два ваших
Выводы по алгоритмам генерации случайных чисел
Выводы по алгоритмам генерации случайных чисел В предыдущем разделе были рассмотрены несколько достаточно простых генераторов случайных чисел. Наилучшие последовательности чисел позволяют получить два последних генератора, но, к сожалению, они выдвигают жесткие
Выбор способа генерации пары ключей
Выбор способа генерации пары ключей Генерация ключей может осуществляться централизованно (УЦ или по его поручению РЦ) либо индивидуально (конечным субъектом). В большинстве случаев пары ключей создаются конечными субъектами, которые должны иметь программные или