Гость
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Membership Api, можно ли легко изменить PK с uniqueidentifier на int / 13 сообщений из 13, страница 1 из 1
13.02.2019, 23:48
    #39773636
Aleksy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Membership Api, можно ли легко изменить PK с uniqueidentifier на int
В таблицах везде установлен PK uniqueidentifier, легко ли будет перевести все на int, есть у кого опыт?
...
Рейтинг: 0 / 0
14.02.2019, 07:14
    #39773662
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Membership Api, можно ли легко изменить PK с uniqueidentifier на int
Aleksy,
Легко, не легко, все одно нужно перейти.
...
Рейтинг: 0 / 0
14.02.2019, 08:21
    #39773676
fkthat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Membership Api, можно ли легко изменить PK с uniqueidentifier на int
Разве что, если кастомный MembershipProvider написать. Код стандартного SqlMembershipProvider на гитхабе доступен, т.ч. не должно быть особо сложно.
...
Рейтинг: 0 / 0
16.02.2019, 00:47
    #39774798
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Membership Api, можно ли легко изменить PK с uniqueidentifier на int
Aleksy,

Не нужно переходить на int.
...
Рейтинг: 0 / 0
16.02.2019, 08:27
    #39774818
fkthat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Membership Api, можно ли легко изменить PK с uniqueidentifier на int
hVosttНе нужно переходить на int.

Нужно. Хотя, у нас как-то использовался комбинированный вариант, который мне понравился - "int identity" для "настоящего" PK в БД + случайно сгенеренная строка для "видимого" (например в URL) ключа. GUID в качестве PK уступает int identity в производительности, но вовсе не потому, что он в 4 раза длинее, а потому что генерирует несортированную последовательность. С другой стороны, показывать наружу identity key тоже не очень хорошо, потому что это, в какой-то степени, disclosure.
...
Рейтинг: 0 / 0
16.02.2019, 11:51
    #39774850
Дмитрий Мух
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Membership Api, можно ли легко изменить PK с uniqueidentifier на int
fkthatпотому что генерирует несортированную последовательность
Использовать sequential guid.
...
Рейтинг: 0 / 0
16.02.2019, 13:11
    #39774873
fkthat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Membership Api, можно ли легко изменить PK с uniqueidentifier на int
Дмитрий Мухfkthatпотому что генерирует несортированную последовательность
Использовать sequential guid.

Да, это можно. Но потребует некоторой дрочи, т.к генерить его придется на стороне БД. Identity мы получаем сразу же через SCOPE_IDENTITY(), обычный GUID можно генерить просто на клиенте, а с NEWSEQUENTIALID() так просто не выйдет, насколько я понимаю.
...
Рейтинг: 0 / 0
16.02.2019, 13:20
    #39774878
Дмитрий Мух
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Membership Api, можно ли легко изменить PK с uniqueidentifier на int
fkthatДмитрий Мухпропущено...

Использовать sequential guid.

Да, это можно. Но потребует некоторой дрочи
Всё уже сделано до нас и доступно через NuGet :)
...
Рейтинг: 0 / 0
16.02.2019, 13:30
    #39774881
Lessyp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Membership Api, можно ли легко изменить PK с uniqueidentifier на int
fkthatGUID в качестве PK уступает int identity в производительности, но вовсе не потому, что он в 4 раза длинее, а потому что генерирует несортированную последовательность.
это будет проблемой только если кластерный ключ построить по id, что делается обычно по незнанию. А так да, GUID нужны только для взаимодействия разных систем/баз, внутри одной базы для связи таблиц только int. Переводить рабочий сервер с данными будет нелегко, пишите скрипт миграции
...
Рейтинг: 0 / 0
16.02.2019, 14:48
    #39774901
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Membership Api, можно ли легко изменить PK с uniqueidentifier на int
fkthatGUID в качестве PK уступает int identity в производительности, но вовсе не потому, что он в 4 раза длинее, а потому что генерирует несортированную последовательность. С другой стороны, показывать наружу identity key тоже не очень хорошо, потому что это, в какой-то степени, disclosure .

Нет, не поэтому. Есть более весомые причины.
...
Рейтинг: 0 / 0
16.02.2019, 14:48
    #39774902
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Membership Api, можно ли легко изменить PK с uniqueidentifier на int
Lessyp,

+1
...
Рейтинг: 0 / 0
16.02.2019, 15:01
    #39774905
Дмитрий Мух
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Membership Api, можно ли легко изменить PK с uniqueidentifier на int
LessypА так да, GUID нужны только для взаимодействия разных систем/баз, внутри одной базы для связи таблиц только int.
Дак может и делать управление пользователями отдельным сервисом с Membership API и отдельной базой?
...
Рейтинг: 0 / 0
16.02.2019, 17:02
    #39774927
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Membership Api, можно ли легко изменить PK с uniqueidentifier на int
Дмитрий МухLessypА так да, GUID нужны только для взаимодействия разных систем/баз, внутри одной базы для связи таблиц только int.
Дак может и делать управление пользователями отдельным сервисом с Membership API и отдельной базой?

Невнимательно прочитал про "внутри одной базы". С этим не согласен.

Мембершип отдельно всегда выносить надо, конечно. Очень часто приходится городить огромное количество костылей, дурно пахнущих прокладок, потому что кто-то когда решил, что "внутри одной базы и только int" и разместил мембершип внутри на ржавых гвоздях так, что потом хоть за голову хватайся.
...
Рейтинг: 0 / 0
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Membership Api, можно ли легко изменить PK с uniqueidentifier на int / 13 сообщений из 13, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]