Здравствуйте. Использую UUID, так-как нужно быстро и независимо вставлять большое кол-во столбцов в таблицу, без создания LOCK. Так-же использую Laravel 5.3. На данный момент в фреймворке нету возможности трансформировать поля при запросе, к примеру в binary. Я пытался городить свои трансформеры, и они даже работали, но сторонние пекеджи почему-то любят использовать raw querry builder. Кароче, binary использовать физически не могу.
Дальше вопрос по string vs char.. что нужно сделать, что-бы заставить laravel нормально работать с char? Умеет ли MySQL автоматически конвертировать string в char? Прийдется ли городить какие-то костыли, и сложнее ли это будет чем string? Если нет, то лучше ли char чем string? Чем?
Дальше вопрос по string vs char.. что нужно сделать, что-бы заставить laravel нормально работать с char? Умеет ли MySQL автоматически конвертировать string в char? Прийдется ли городить какие-то костыли, и сложнее ли это будет чем string? Если нет, то лучше ли char чем string? Чем?
Во первых, у MySQL нет типа данных "string". Есть varchar.
Видимо, вы мельком пробежались по миграциям, и увидели что-то вроде этого:
Schema::create('...', function (Blueprint $table) {
$table->increments('id');
$table->string('name');
Далее по тексту, "умеет ли MySQL автоматически конвертировать string в char".
Вопрос крайне размыт, но если вы поменяете тип varchar на char - он вполне нормально сконвертируется.
Если же вы создадите поле char с нуля из миграции (подробнее о типах тут - docs), то переданная при сохранении модели строка спокойно будет хранится в данной колонке.
Andrzej Wielski: Да, знаю про varchar, оговорка. И нет, далеко не мельком. Я же этот вопрос не просто так спросил.. и не спрашивал бы если не перепробывал все, не запилил бы свой пекедж, не пересмотрев половину laracasts..
Я имею виду то, умеет ли mysql конвертировать данные в запросе в нужный тип.. запрос же идет в виде string, к примеру "SELECT * WHERE `id`='some-uuid-string' LIMIT 1", а в базе char, этого я и боялся..
Спасибо за ответ, достаточно было последнего предложения)