2010-10-11 3 views
1

Существуют ли соглашения об именах для таблиц/полей в MySQL? Я нашел большой список «зарезервированных слов», но кроме этого есть какие-то другие проблемы с именованием?Соглашения об именах полей и таблиц MySQL

Например, это поле/таблица имен, как это приемлемо:

p_name 
p.name 
p-name 

ответ

3

Вы не можете использовать p.name или p-name как поля! p.name будет означать поле name из таблицы p. p-name средство вычитание поле name из field p.

Префиксы в базе данных могут быть полезны, если в одной базе данных есть сторонние таблицы. Например, мантис префикс (по умолчанию) всех имен таблиц с mantis_ для предотвращения конфликтов имен. Я бы не рекомендовал это для полей, но это вопрос вкуса, не так ли?

+0

Спасибо, сейчас, где и как, я найду то, что есть и не приемлемо? т. е. откуда вы это знаете? Есть ли для этого источник ссылок в Интернете? (Мне не хватает языка, чтобы найти его!) –

+0

Эти операторы являются просто базовыми SQL, они объясняются в любой книге или учебнике по SQL. Я не знаю никаких ссылок или списков ... Вы можете использовать '_'. Зачем вам нужен еще один символ? – Ishtar

+0

Базовый SQL, да, но должна быть ссылка или слово, которое я мог бы найти в документации, которая приземлила бы меня на странице, которая описывает это. –

2

Я думаю, главное, чтобы просто быть последовательным.

Я предпочитаю имена таблиц, подобные этим:

order 
order_detail 
customer 
address 
customer_address (links customer and address) 

Я использую ту же конвенцию для имен столбцов (нижний регистр, отдельные важные слова с подчеркиванием).

Это соглашение, которое я видел чаще всего во многих разных базах данных, но опять же, главное - просто выбрать шаблон и придерживаться его.

+0

Предположим, у меня есть таблица 'abc_def' и' ghj'. Когда я создаю таблицу для хранения ссылок между ними, 'abc_def_ghj' в порядке? Есть ли лучшее решение для разностных нормальных таблиц (~ 'abc_def' и' ghj') и таблиц, содержащих ссылки (~ 'abc_def_ghj')? – Mehmed

+0

@Mehmed - Одно соглашение, которое мы используем при моей работе, - это разделить имена связанных таблиц на ##. Таким образом, в вашем примере это будет abC## def_ghj. – dcp

Смежные вопросы