Что такое префикс таблицы, и каковы их преимущества и недостатки? Это что касается MySQL.
Что такое префикс таблицы?
Ответы (7)
Это часто используется, чтобы отличить разные установки одного и того же скрипта друг от друга. Например, предположим, что у вас есть две установки Joomla с разным содержимым на вашем сервере, но только одна база данных MySQL.
Теперь, по понятным причинам, обе установки Joomla не могут совместно использовать одни и те же таблицы базы данных, так как это приведет к тому, что обе установки будут отображать одно и то же содержимое. И тут в дело вступает префикс.
Используя различные префиксы таблиц, вы можете сообщить установке Joomla #1, что предполагается использовать всю таблицу с префиксом JOS_, а установке Joomla #2 нужно использовать все таблицы с префиксом JOS2_.
Таблицы не требуют префиксов.
Это зависит исключительно от вас.
Однако мы ставим перед таблицами префикс относительно МОДУЛЕЙ в приложении, которому они принадлежат, просто для того, чтобы упростить группировку таблиц.
Некоторые люди поддерживают tbl или tbl_ (например, tbl_MyTable или tblMyTable), в то время как другие используют суффикс, такой как MyTable_T.
Лично я избегаю префиксов/суффиксов. Я могу заменить представление на таблицу, если схема меняется с течением времени, поэтому я не различаю два типа объектов.
Самое главное, чтобы ваши правила именования были задокументированы в вашей команде, и вы все придерживались одного и того же набора правил для согласованности.
Странно, что никто не упомянул, что вы также можете использовать префиксы таблиц для использования обычно зарезервированных ключевых слов в качестве имен таблиц.
Например. t_user или t_order теперь возможны.
CREATE TABLE `DROP DATABASE webshop;` (`value` INT)
- person Dávid Horváth; 21.04.2016
В небольшом количестве случаев, например, когда сценарии вредоносных программ были созданы для определенных типов сайтов, таких как WordPress и т. д., изменение префиксов таблиц было полезно в качестве дополнительной меры безопасности.
Например, добавление префиксов таблиц скрывает общие имена таблиц, что усложняет хакерам доступ к данным в вашей базе данных через SQL-инъекции или другие бреши в безопасности, поскольку им сначала нужно будет узнать, каковы ваши имена таблиц.
Однако обязательно рассматривайте префиксы таблиц как очень второстепенный уровень безопасности. Это НЕ должно быть вашим основным методом безопасности. Вам по-прежнему следует принимать другие более важные меры безопасности для предотвращения SQL-инъекций и других подобных угроз. Например, в зависимости от того, как настроен ваш код, хакер все еще может запустить команду «показать таблицы» с помощью SQL-инъекции, чтобы получить имена таблиц вашей базы данных.
wp_users
. В этих случаях те, кто использовал другой префикс, не были затронуты этими червями. И хотя наличие другого префикса было слабой мерой безопасности, тем не менее, это была мера безопасности. В то время как лучшей безопасностью для разработчиков WordPress было бы полное устранение всех шансов внедрения SQL, конечные пользователи не должны предполагать, что это так.
- person kojow7; 08.01.2019
Если у вас сложный веб-сайт и структура базы данных, префиксы таблиц могут помочь предотвратить конфликты имен в базе данных.
Вы часто видите префиксы таблиц в ситуациях, когда:
Несколько сценариев объединяются в один веб-сайт, и готовый веб-сайт должен обмениваться данными, но имена таблиц будут конфликтовать без префикса, уникального для каждого сценария.
Вы добавляете функциональные возможности в приобретенный скрипт и хотите различать таблицы, встроенные в этот скрипт, и новые таблицы, которые вы создаете вручную. Таким образом, если вы создадите новую таблицу, она не будет конфликтовать с будущими обновлениями базового сценария, поскольку у нее будет другой префикс таблицы.
У вас есть план хостинга, который дает вам только одну базу данных, и вы хотите использовать эту базу данных для обслуживания нескольких скриптов. (Это не рекомендуется по ряду причин, но я видел, как это делают пользователи.)
Когда вы пишете сценарий с нуля, префиксы таблиц обычно не нужны, поскольку вы контролируете все аспекты структуры базы данных. Когда вы начинаете интегрировать несколько скриптов вместе, это становится полезным, а иногда даже необходимым. Он позволяет создавать уникальные представления данных, объединять таблицы и т. д. между несколькими сценариями, не беспокоясь о конфликтах имен в базе данных.
Это может помочь различать таблицы и представления в зависимости от вашего соглашения об именах.
Недостатком является то, что вы можете быть ограничены в том, что касается имени таблицы. Oracle имеет для этого ограничение в 30 символов. Если вы используете «Tbl_» в качестве префикса, вы автоматически теряете 4 символа. Это может быть проблемой.