Альтернативы типам данных MSSQL и SQL?

Мне нужно работать над проектом, подключающимся к базе данных SQL Server, работая с PHP и фреймворком Laravel.

Моя проблема связана с типами данных и тем, где я мог бы изменить их на полностью функциональные и более «обычные» типы данных SQL. Возьмем, к примеру, NVARCHAR. Смогу ли я превратиться в обычный VARCHAR?

Типы у меня есть:

  • NCHAR
  • NVARCHAR
  • GEOGRAPHY

Я прочитал здесь, что:

Laravel использует db-библиотеку (если она доступна) для подключения к серверу Sql, который не может получать данные в формате Unicode из MSSQL. (1,2)

Есть ли в толпе кто-нибудь, кто работает с Laravel и выполнял такую ​​задачу?


person DudeOfLayers    schedule 23.01.2017    source источник
comment
NCHAR и NVARCHAR вполне условны. Они позволяют использовать расширенный набор символов. Эта страница должна оказаться чрезвычайно полезной. msdn.microsoft.com/en-us/library/ms187752.aspx   -  person Sean Lange    schedule 23.01.2017
comment
Как и ГЕОГРАФИЯ... С какой проблемой вы здесь столкнулись?   -  person iamdave    schedule 23.01.2017
comment
Я должен был остановиться на обычных... Laravel (и я уверен, что другие фреймворки) имеют определенные модели и схемы, которые используют обычные типы данных, если вы знакомы с красноречивыми моделями Laravel, в любом случае я изменю свой вопрос, чтобы прояснить ситуацию. вверх.   -  person DudeOfLayers    schedule 23.01.2017
comment
@iamdave Я ищу «красноречивый» способ создания моей БД, объединенной с laravel, я нигде не могу найти никакой относительной информации об использовании типов данных, которые у меня есть с Laravel, интересно, сталкивался ли кто-нибудь с этим и есть возможность иметь дело с этим. Спасибо.   -  person DudeOfLayers    schedule 23.01.2017
comment
@DudeOfLayers Спасибо за дополнительные разъяснения. Предоставление полного контекста и объяснения проблем, с которыми вы сталкиваетесь, имеет важное значение для получения целенаправленных и актуальных рекомендаций.   -  person iamdave    schedule 23.01.2017
comment
dblibrary является древним, и тот факт, что многие инструменты на основе Unix все еще требуют или поощряют его использование, следует считать преступным, учитывая то, как он выбирает плохие и неинтуитивные значения по умолчанию для таких параметров выполнения, как ANSI_NULLS. Попробуйте вместо этого использовать соединение ODBC и собственный клиент ODBC, если это поддерживается вашей настройкой. Сопоставление NVARCHAR с любым строковым типом, используемым вашей структурой, просто не должно быть проблемой и, конечно же, не должно требовать от вас изменения базы данных!   -  person Jeroen Mostert    schedule 24.01.2017


Ответы (1)


Вы можете использовать следующее соглашение, которое я нашел из типов данных MSSQL для типов данных MYSQL.

NCHAR => CHAR/LONGTEXT
NVARCHAR => VARCHAR/MEDIUMTEXT/LONGTEXT

Все еще не смог найти решение для типа GEOGRAPHY. Я буду держать вас в курсе.

Нашел это на GEOGRAPHY, но явно не упоминает аналог Это.

person Gayan    schedule 23.01.2017
comment
Так вы говорите, что я могу свободно использовать varchar вместо nvarchar? Я считаю, что это сделал администратор баз данных, так как у нас будут все языки в мире. Посмотрю и на ваш ответ по географии тоже. - person DudeOfLayers; 23.01.2017
comment
@DudeOfLayers Я не уверен в MySQL, но в MSSQL точно нет. Преобразование из nvarchar в varchar не сохранит международные наборы символов. - person iamdave; 23.01.2017
comment
Я согласен + все обходные пути, которые я нашел в Интернете, слишком разрознены и не будут приняты ни в одном обзоре кода, спасибо всем и буду ждать любых будущих ответов. - person DudeOfLayers; 23.01.2017