EDIT: Я уверен, что у этого был тег PHP, прежде чем я ответил. Если нет, игнорируйте ссылки на конкретные библиотеки.
=================================
Это зависит от шаблона, который вы используете, и с какими ограничениями вы сталкиваетесь, а версия PHP является основной.
Если вы разрабатываете автономное приложение, которое вряд ли сильно изменится, то использование констант для имен таблиц будет полезно только в том случае, если вы ожидаете изменить имена таблиц.
Если вы разрабатываете повторно распространяемое приложение, то динамические имена таблиц (при установке) полезны, см. Пример WordPress.
Если вы используете ORM, например Doctrine2, то имена таблиц в значительной степени неактуальны, потому что они абстрагируются по большей части, и вы работаете с классами.
В конечном счете, хотя конкатенация строк для SQL становится беспорядочной, поэтому рекомендуется использовать построитель запросов, что упрощает работу с константами.
Например, если вы используете PHP5.3 +, вы можете использовать Doctrine DBAL. Вам не нужно включать ORM для использования DBAL, потому что ORM of Doctrine использует «это», а не наоборот. Если вы знакомы с Doctrine2 ORM, вы поймете, что построитель запросов использует имена классов, но это магия ORM, преобразующая их в имена реальных таблиц.
Короче говоря, я бы рекомендовал использовать библиотеку, которая поддерживает построители запросов, которая позволяет писать запросы в логические процедуры без необходимости конкатенации. Как только у вас есть это, нет ничего плохого в использовании констант, кроме того, что потенциально можно сделать это по неправильным причинам.
Какие преимущества и недостатки вы думаете, этот подход? – Kayaman
Allways использует [PreparedStatement] (http://docs.oracle.com/javase/7/docs/api/java/sql/PreparedStatement.html) – SomeJavaGuy
Я считаю, что лучшие практики - использовать хранимые процедуры или использовать ORM, это не так. По какой причине вы идете в этом направлении?Есть ли конкретная причина? Вы не указали много информации. – Kritner