Пробующий
185 / 98 / 10
Регистрация: 28.04.2009
Сообщений: 1,101
|
|
1 | |
Что будет с UniqueIdentifier19.07.2011, 13:33. Показов 1416. Ответов 1
Метки нет (Все метки)
У меня есть таблица
PersonId - это Unique Identifier с начальным значением 1 и Приращением 1. Каждый пользователь может регистрироваться на сайте и обновлять личные данные. При регистрации генерируется INSERT скрипт, при обновлении надо делать UPDATE, но мне стало лень писать UPDATE (не сильно лень, просто я подумал - зачем), я просто вставил перед INSERT скриптом DELETE. То есть я удаляю запись пользователя и вставляю еще раз с обновленными данными. Но в таком случае обновленной записи присваивается новый PersonId (в случае с UPDATE такого не будет) и этот PersonId постоянно увеличивается при каждом обновлении. Тип PersonId - это 4 байтовый int, беззнаковый, то есть там предел - около 4 миллиардов значений. Но я слабо представляю тягу пользователей к обновлению своих личных данных. Может получится ситуация, когда PersonId достигнет предельного значения при небольшом к-ве пользователей, просто потому, что они будут часто обновлять у себя аватарку или ник. Вообщем вопроса два: 1. Что будет с PersonId, если он достигнет предела типа данных, то есть на сайте захочет зарегится 100001 - ный пользователь, но при этом предыдущие 100000 слишком часто обновляли данные. То есть фактически к-во записей в таблице Persons - это 100000, но PersonId максимальный - уже очень большой. 2. Что сработает быстрее DELETE - INSERT или UPDATE?
0
|
19.07.2011, 13:33 | |
Ответы с готовыми решениями:
1
Почему говорят, что при создании базы данных в качестве ID нужно использовать uniqueidentifier Что будет, если установленная ОЗУ будет от разных производителей? Что будет выводить puts, если в конце строки не будет нулевого байта Что будет если к пустой строке применить strtoint. Какое число будет присвоено? |
1 / 1 / 0
Регистрация: 26.08.2011
Сообщений: 8
|
|
26.08.2011, 11:59 | 2 |
1. Будет ошибка:
Arithmetic overflow error converting IDENTITY to data type int. В качестве решения можно предложить изменить тип данных PersonId на BIGINT (верхний предел значений 9,223,372,036,854,775,807) 2. Если на таблице построены индексы, delete+insert дороже чем update. Иначе - одинаково.
0
|
26.08.2011, 11:59 | |
26.08.2011, 11:59 | |
Помогаю со студенческими работами здесь
2
Что будет если СО будет двигаться навстречу свету? Теоретически! Если на сайте не будет не какой текстовой информации то и найти на нём что то будет не возможным (внутри)? Uniqueidentifier в sqlite Как генерировать uniqueidentifier Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |