Называть колонки с зарезервированными словами проблематично? - PullRequest
0 голосов
/ 30 октября 2018

Например, в чистом PHP эта ссылка ниже демонстрирует проблемы с именованием столбцов с зарезервированными словами

Синтаксическая ошибка из-за использования зарезервированного слова в качестве имени таблицы или столбца в MySQL

Однако я использую оба ключа и значения в качестве имен столбцов в нескольких таблицах в моем приложении, которое я разрабатывал уже 15 месяцев, и у меня никогда не возникало никаких проблем с этими именами. Я, вероятно, использую еще несколько зарезервированных слов для имен столбцов.

Laravel избегает их с обратным тылом, поскольку ответ предлагает сделать это вручную? Если Laravel не ускользает от них, почему я могу использовать любое имя для столбца в таблице и не получить никаких проблем при создании или обновлении моей модели?

Ответы [ 2 ]

0 голосов
/ 30 октября 2018

Краткий ответ: Да, это может быть проблематичным, но да, Laravel правильно цитирует их в большинстве случаев. (Случаи, когда этого не происходит, скорее всего, в необработанных запросах)

Если вы можете помочь, используйте слова, которые не зарезервированы. Например, order может быть названо sort_order.

Я работал над проектом без Laravel, где столбец действительно был назван order. Правильное цитирование с помощью обратных кавычек (`order`) решило проблемы с синтаксисом MySQL, вызванные выполнением запросов, таких как select * from foo order by order. Однако я столкнулся с несколькими различными обходными путями для этой простой проблемы, реализованной разработчиками, которые не были знакомы ни с PHP, ни с MySQL, ни с обоими их синтаксисами. Конечно, правильное исправление было простым (обратные кавычки), но кто-то без такого фона мог бы (и сделал) придумать обратное решение проблемы, которая не должна существовать в первую очередь .

Кроме того, имена столбцов с пробелами ... * дрожь *

0 голосов
/ 30 октября 2018

Вы никогда не должны называть свои столбцы ключевыми словами, это вызывает проблемы.

Конечно, это может сработать; какое-то время, может быть, навсегда, но, может быть, больше не в тот день, когда вам действительно не нужна такая проблема, или через годы, когда вы все об этом забыли.

Сравните это с вождением автомобиля с закрытыми глазами. Это тоже работает довольно долго.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...