первичный ключ привлекательности
У меня есть начальник (а также пользователи), который хочет, чтобы первичным ключом был сложный / умный / привлекательный контрольный номер (вроде номера социального страхования или формата номера кредитной карты)
Я только что добавил первичный ключ (в представлениях) нулями, чтобы удовлетворить их желание сделать контрольный номер изощренным, умным и привлекательным. Но они хотели, чтобы это было так: сначала 2 цифры в качестве кода клиента, затем 4 цифры в качестве года, затем последние 4 цифры в качестве номера транзакции для этого клиента в конкретном году, а затем сбросьте номер транзакции клиента в 1 при следующем году. Каждая клиентская транзакция начинается с 1. Например, WM20090001, WM20090002, BB2009001, WM20100001, BB20100001
Но так как я хотел сделать вещи максимально простыми, я отказался от встраивания их рекомендуемого разумности в первичный ключ, я просто сохраняю автоинкременты первичного ключа независимо от клиента и года. Но чтобы это не выглядело скучно (они действительно непреклонны в том, чтобы сделать первичный ключ интеллектуальным контрольным номером), я сделал так, чтобы первичный ключ казался им умным, при запросе представления я помещаю код клиента и четырехзначный годовой код впереди. ключа автоинкремента с восемью нулями, то есть WM200900000001. Сортировка слагоподобной информации об автоинкрементном первичном ключе.
Сохраняя автоинкремент первичного ключа независимо от какой-либо другой информации, мы можем сохранить другие потенциальные побочные эффекты при редактировании записи, например, если они допустили ошибку при вводе транзакции на WM, они редактируют код клиента в BB, если мы используем интеллектуальный первичный ключ, первичные ключи клиента WM будут иметь пробелы в контрольных номерах. Или, что еще хуже, вместо того, чтобы позволить контрольным числам иметь пропуски / дыры, пользователи будут запрашивать, чтобы последующие записи этих пропусков сместились до этих пропусков, и чтобы первичные ключи последующих записей были скорректированы (уменьшены).
- Как вы обрабатываете эти пользовательские запросы (разумные или нет)?
- Вы уступаете их запросу?
- Или просто продолжайте использовать тупой первичный ключ и объясните им последствия наличия очень умного / сложного первичного ключа и объясните им существенные преимущества наличия тупого первичного ключа?
приписка
цитата (https://web.archive.org/web/1/http://articles.techrepublic%2ecom%2ecom/5100-10878_11-1044961.html):
"Если вы будете держать язык за зубами первым
пользователи времени спрашивают, что для них
разумный запрос, все будет работать
намного лучше в конце. "