Является ли использование Natural Join или Implicit имен столбцов не хорошей практикой при написании SQL на языке программирования? - PullRequest
1 голос
/ 25 апреля 2010

Когда мы используем Natural Join, мы объединяем таблицы, когда обе таблицы имеют одинаковые имена столбцов. Но что, если мы напишем его на PHP, а затем администратор БД добавит еще несколько полей в обе таблицы, тогда естественное объединение может прерваться?

То же самое касается вставки, если мы делаем

insert into gifts values (NULL, "chocolate", "choco.jpg", now());

тогда он нарушит код, а также загрязнит таблицу, когда администратор базы данных добавит некоторые поля в таблицу (например, столбец 2 или 3). Поэтому всегда лучше указывать имена столбцов, когда операторы SQL написаны на языке программирования и сохранены в файле в большом проекте.

Ответы [ 3 ]

2 голосов
/ 25 апреля 2010

Естественные объединения не очень хорошая идея, где бы вы их ни писали. Они скрывают значение, которое может предоставить более явный код, и могут вносить незначительные ошибки при изменении имен столбцов.

1 голос
/ 25 апреля 2010

Да, это всегда хорошая идея, чтобы явно назвать интересующие вас столбцы. Как вы указали, это предотвращает разрыв запроса, если кто-то добавляет столбец в таблицу.

То же самое относится к предпочтению перечислять столбцы в SELECT вместо записи SELECT *. См этот связанный вопрос .

1 голос
/ 25 апреля 2010

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

...