MySQL не содержит конкретных соображений, кроме базы данных SQL. Таким образом, вопрос заключается в том, какое соглашение об именах должно использоваться для базы данных SQL.
Отмечая, что вы действительно можете назвать столбцы, что вы любите (в пределах диапазона допустимых имен), при оценке лучшего выбора имен, рассмотрите:
- как удобно будут имена взаимодействовать с функциями языка SQL - в частности, объединяется?
- Насколько хорошо будут пониматься имена?
Относительно 1, считают:
- Каким ИСПОЛЬЗОВАНИИ положение ведет себя?
- Как работает процедура NATURAL JOIN?
- Как работает INNER JOIN, когда столбцы без объединения из разных исходных таблиц имеют одно и то же имя и являются SELECTed? (Хотя SQL позволяет точным именам откладывать конфликты - это не распространяется на подзапросы.)
Что касается 2, считайте, что по мере развития вашей схемы первичная ситуация может стать иностранной. То, что может стать многими. Помогает ли это переименовать столбцы только потому, что изменяется кардинальность?
Наконец, считайте, что первичный ключ с одним столбцом не всегда является искусственным ключом. В данном примере это может быть на самом деле внешний ключ (1-1 отношения):
ЗАДАЧА {TASK_ID, task_created_date} - задача с TASK_ID была создана на task_created_date
TASK_DUE {TASK_ID, task_due_date} - задача с TASK_ID связано с DUE_DATE
А? 'tableName_id' обычно используется для поля внешних отношений, а не для самой таблицы, не так ли? –
Это было задано много раз. Обычно такие вопросы приводят только к пламени. – Quassnoi