Unicode

PoweRDeaD

ЗдравсвуйтеЕсть БД поддержкой Unicode: Collation = Cyrillic_General_BIN2Символьные поля: NVARCHARВопрос такой: будет ли корректно в данной БД в качестве ключевых символьных полей (Primary Key, Foreing Key) использовать простой VARCHAR?
13 ответов

PoweRDeaD

А какая связь между collation полей и ПК ?


PoweRDeaD

А какая связь между collation полей и ПК ?
Связи наверное никакой, просто корректно это или нет в PK и FK использовать простой VARCHAR, если приложение и БД заточены на работу с Unicodе: принесет это какие-либо плюсы или минусы.


PoweRDeaD

Связи наверное никакой, просто корректно это или нет в PK и FK использовать простой VARCHAR, если приложение и БД заточены на работу с Unicodе: принесет это какие-либо плюсы или минусы.
Что значит "приложение и БД заточены на работу с Unicodе" ? Приложение будет игнорировать ввод не-Unicodе данных что ли ?


PoweRDeaD

Что значит "приложение и БД заточены на работу с Unicodе" ? Приложение будет игнорировать ввод не-Unicodе данных что ли ?
Значит, что приложение приложение умеет работать с Unicode данными...


PoweRDeaD

Значит, что приложение приложение умеет работать с Unicode данными...
И НЕуметь работать с не-Unicodе ?


PoweRDeaD

...умеет-умеет


PoweRDeaD

...умеет-умеет
В чем тогда вы видите проблему ?


PoweRDeaD

В чем тогда вы видите проблему ?
Если бы знал, то не спрашивал бы совета :)Хорошо, спрошу по другому: БД переводят на возможность поддержки Unicode, PK и FK лучше оставить как VARCHAR, или их тоже преобразовать в NVARCHAR ?


PoweRDeaD

Если бы знал, то не спрашивал бы совета :)Хорошо, спрошу по другому: БД переводят на возможность поддержки Unicode, PK и FK лучше оставить как VARCHAR, или их тоже преобразовать в NVARCHAR ?
MS SQL это практически безразлично.Вопрос только в проектировании системы: будет у вас там Unicode или нет?


PoweRDeaD

...Вопрос только в проектировании системы: будет у вас там Unicode или нет?
В символьных полях - ДаВ PK и FK значения генерятся через newid()


PoweRDeaD

В символьных полях - ДаВ PK и FK значения генерятся через newid()
вопче-то newid() - это BINARY.


PoweRDeaD

естественно с преобразованием cast(newid() as ...


PoweRDeaD

естественно с преобразованием cast(newid() as ...
Вам больше нечем заняться?