О именовании таблиц в БД
-
- Сообщения: 47
- Зарегистрирован: 2014.02.23, 09:48
О именовании таблиц в БД
Натыкался на мнение, что таблицы в БД стоит называть не во множ. а в ед.числе. НЕ Products, а Product . С моделями то понятно, там Product это один AR объект, который представляет одну строку таблицы, т.е. (напр) - 1 продукт. Не пойму почему саму таблицу БД то стоит называть Products? И еще это только для YII такая рекомендация, или вообще любого веб-проекта?
Re: О именовании таблиц в БД
Чтобы не парится с правилами и исключениями пишите все в единственном числе.
Re: О именовании таблиц в БД
вообще для любого проекта, с множ. числом возникает куча вопросов - некоторые слова, например не имеют множ. числа, потом как называть таблицы из нескольких слов и тп, поэтому с опытом тоже отказался от этого - лишние головоломки с названиями
Re: О именовании таблиц в БД
но одно из исключений - news
Re: О именовании таблиц в БД
новость
news, novelty, piece of news, item, breeze
news, novelty, piece of news, item, breeze
Re: О именовании таблиц в БД
Это всего лишь соглашение между разработчиками проекта. Кому как удобней и понятней, тот так и делает, но в рамках одного проекта придерживаются общего стиля.Bleed-the-sky писал(а):Натыкался на мнение, что таблицы в БД стоит называть не во множ. а в ед.числе.
-
- Сообщения: 957
- Зарегистрирован: 2014.05.31, 20:50
- Откуда: Санкт-Петербург
- Контактная информация:
Re: О именовании таблиц в БД
Именование таблиц в единственном числе удобно, практично и уменьшает риск запутаться, если система сложная. Профессиональные разработчики всегда придерживаются определённых соглашений, Yii, например, предлагает вот такие.
Кстати, Microsoft в своих проектах именует таблицы в единственном числе.
Кстати, Microsoft в своих проектах именует таблицы в единственном числе.
Re: О именовании таблиц в БД
Вот это вообще не показатель =)mickgeek писал(а):Кстати, Microsoft в своих проектах именует таблицы в единственном числе.
Чем единственное число удобней чем множественное? В чем ты там путаешься?mickgeek писал(а):Именование таблиц в единственном числе удобно, практично и уменьшает риск запутаться, если система сложная
Лучше следить чтобы таких криворуких наименователей не было
Roksalana писал(а):Создала такую модельку:Код: Выделить всё
class DinamikForm extends CFormModel
-
- Сообщения: 957
- Зарегистрирован: 2014.05.31, 20:50
- Откуда: Санкт-Петербург
- Контактная информация:
Re: О именовании таблиц в БД
Мне удобно их именовать, да и удобно использовать такие названия, например, при создании внешних ключей. А путаница... ради эксперимента советую на досуге переименовать в другую форму те таблицы Microsoft ;)SiZE писал(а):Чем единственное число удобней чем множественное? В чем ты там путаешься? :lol:mickgeek писал(а):Именование таблиц в единственном числе удобно, практично и уменьшает риск запутаться, если система сложная
-
- Сообщения: 47
- Зарегистрирован: 2014.02.23, 09:48
Re: О именовании таблиц в БД
Для меня пока кажется наоборот ед.число - путаницей (может просто "прока") . Например создаю геттер для релайшена, получить категории продукта, как назвать его? Получается getCategory ? Чтоб везде уж было тогда ед.число. В комментариях создаю геттер получить категорию (к которой относится комментарий), и он (хоть и в другой модели), но тоже getCategory. Там hasMany, тут hasOne, однако везде getCategory.
Re: О именовании таблиц в БД
а причем тут релейшены?) называейте их как удобно
-
- Сообщения: 47
- Зарегистрирован: 2014.02.23, 09:48
Re: О именовании таблиц в БД
Ок. Ясненько
Re: О именовании таблиц в БД
getCategoryListполучить категории продукта, как назвать его? Получается getCategory ?
getCategoryListArray, getCategoryListOfArrays (если предполагается что будет массив массивов)
getCategoryListObject, getCategoryListOfObjects (если предполагается что будет массив объектов)
второй вариант (мне нравится больше в плане краткости, хотя первый привычнее):
getCategoryList (если предполагается массив объектов, например тех же AR)
fetchCategoryList (если на возврате массив массивов)
То есть фишка именно в том что нет путаницы в окончаниях и единичных-множественных словоформах. Item - одна хрень, ItemList - список хреней, массив... Да, Item и Items вроде было бы хорошо, однако что делать со словами имеющими нестандартное множественное число? Man-Men, например - коверкать?
- slavcodev
- Сообщения: 3134
- Зарегистрирован: 2009.04.02, 21:42
- Откуда: Valencia
- Контактная информация:
Re: О именовании таблиц в БД
А есть еще ListList
Вижу тут смешались люди, кони, таблицы, релайшены и еще много чего все в кучу
И вообще таблица это не коллекция сущностей, это набор строк, а уже в каждой строке сущность. Улавливаете мысль? Так что ничего общего между нахванием таблицы и названием класса сущности. Но для удобства лучше называть в единственном числе
1) Название берем сразу из класса get_class($this) в родительском классе, и забыли о названиях таблиц, тем более думать как перевести его в множественное число (да, да, у меня названия таблиц копия класса, даже регистр букв)
2) Таблицы состоящие из двух слов, часто не получается в множественном числе писать, например products_categories, ведь категории не продуктов, а категори продукта, мешать тоже не дело product_categories, я как программист не люблю исключения. Вот пытаюсь быть последовательным и писать в одной форме product_category, post_tag_assn
Вижу тут смешались люди, кони, таблицы, релайшены и еще много чего все в кучу
По твоей логике, has_one свзяи ты тоже называешь getCategories()?Например создаю геттер для релайшена, получить категории продукта, как назвать его? Получается getCategory ?
И вообще таблица это не коллекция сущностей, это набор строк, а уже в каждой строке сущность. Улавливаете мысль? Так что ничего общего между нахванием таблицы и названием класса сущности. Но для удобства лучше называть в единственном числе
1) Название берем сразу из класса get_class($this) в родительском классе, и забыли о названиях таблиц, тем более думать как перевести его в множественное число (да, да, у меня названия таблиц копия класса, даже регистр букв)
2) Таблицы состоящие из двух слов, часто не получается в множественном числе писать, например products_categories, ведь категории не продуктов, а категори продукта, мешать тоже не дело product_categories, я как программист не люблю исключения. Вот пытаюсь быть последовательным и писать в одной форме product_category, post_tag_assn
Жду Yii 3!
-
- Сообщения: 47
- Зарегистрирован: 2014.02.23, 09:48
Re: О именовании таблиц в БД
Почему? hasOne getCategoryslavcodev писал(а):А есть еще ListListПо твоей логике, has_one свзяи ты тоже называешь getCategories()?Например создаю геттер для релайшена, получить категории продукта, как назвать его? Получается getCategory ?
-
- Сообщения: 47
- Зарегистрирован: 2014.02.23, 09:48
Re: О именовании таблиц в БД
Думаю неплохо)GeX писал(а): getCategoryList
Наверно перебор) А если getCategoryListOfArraysOfArraysOfArrays Хотя можно конечно условится обозначать только верхний уровеньGeX писал(а): getCategoryListOfArrays (если предполагается что будет массив массивов)
-
- Сообщения: 957
- Зарегистрирован: 2014.05.31, 20:50
- Откуда: Санкт-Петербург
- Контактная информация:
Re: О именовании таблиц в БД
А можно не заниматься извращениями, а просто, как написал ранее anton44eg, называть функции отдельно от табличных имён, getCategories(). Один проект и Вы уже привыкли к таким наименованиям)Bleed-the-sky писал(а):Наверно перебор) А если getCategoryListOfArraysOfArraysOfArrays Хотя можно конечно условится обозначать только верхний уровеньGeX писал(а): getCategoryListOfArrays (если предполагается что будет массив массивов)
-
- Сообщения: 957
- Зарегистрирован: 2014.05.31, 20:50
- Откуда: Санкт-Петербург
- Контактная информация:
Re: О именовании таблиц в БД
А у столбцов какие имена, CamelCase или underscore?slavcodev писал(а):1) Название берем сразу из класса get_class($this) в родительском классе, и забыли о названиях таблиц, тем более думать как перевести его в множественное число (да, да, у меня названия таблиц копия класса, даже регистр букв)
Re: О именовании таблиц в БД
В мире где в IDE существует автокомплит длинные имена не так уж страшны Зато я вижу что мне возвращается - иногда это оправдано (хотя вот прямо сейчас в проекте у меня вообще вся работа с выводом данных из БД построена на DAO-подходе с гидрацией результата, в итоге на выходе всегда нечто отнаследованное от ArrayObject и описанное отдельно для автокомплита в IDE)Bleed-the-sky писал(а):Наверно перебор) А если getCategoryListOfArraysOfArraysOfArrays Хотя можно конечно условится обозначать только верхний уровеньGeX писал(а): getCategoryListOfArrays (если предполагается что будет массив массивов)