[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Задавать префиксы таблицам это хороший тон?
Страницы: 1, 2, 3, 4
glock18
Цитата (twin @ 20.03.2014 - 11:17)
При таком подходе ты убивааешь возможность пользоваться некоторыми возможностями БД. Допустим USING, INSERT...SELECT и пр. В сквозных назвниях имхо проку больше.


INSERT SELECT то не мешает использовать, но мне вот что любопытно. Есть ссылка a_id в таблице. И вы сразу же знаете, что это ссылка на таблицу asdfasdfasdf, но почему это не может быть ссылкой на таблицу apoaopopop? Ну ближе к реалиями, скажем, почему это должен быть address, а не addon, article или annotation? Имхо, однобуквенные названия колонок (не считаем _id) - путь к тому, чтобы начать путаться, когда в контексте одной и той же таблицы эта самая буква "a" может означать две совершенно разные сущности.
Valick
Цитата
При таком подходе ты убивааешь возможность пользоваться некоторыми возможностями БД. Допустим USING

c чего бы это?
там же чётко написано для внешнего ключа префикс внешней таблицы, его (их) сразу видно
Цитата
когда в контексте одной и той же таблицы эта самая буква "a" может означать две совершенно разные сущности

это всего лишь пример, префикс может состоять из чего угодно, главное это его смысл

_____________
Стимулятор ~yoomoney - 41001303250491
twin
Valick
Цитата
там же чётко написано для внешнего ключа префикс внешней таблицы, его (их) сразу видно
А что, по этому "ключу" нельзя объединять таблицы? Нет, конечно можно использовать ON, потому и написал ИМХО. Кому как удобнее.



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

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
Valick
twin, нет я именно о USING
таблица user ключ u_id, таблица ban ключ b_id и внешний ключ u_id, джойним по USING(u_id)


_____________
Стимулятор ~yoomoney - 41001303250491
twin
А если таблица user ключ u_id, таблица ban ключ b_id и внешний ключ u_id и еще таблица access с ключами a_id и b_id, то как объединить таблицы user и access?

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

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
Valick
twin, а всли все 60 таблиц называются tablica, и все поля в этих таблицах называются field, как их отличать?
Я думаю овет лежит на поверхности (причем был дан несколько постов ранее), ни я ни кто другой не заставляет указывать префиксом первую и единственную букву имени таблицы.
таблица user можно обзывать ключи как угодно us_id, use_id вплоть до user_id, зачем? да затем когда смотришь дамп таблицы например таблицы ban , то сразу видно что ban_id - это идентификатор строки данной таблицы, а user_id - это внешний ключ таблицы user.



_____________
Стимулятор ~yoomoney - 41001303250491
AllesKlar
Цитата (twin @ 20.03.2014 - 17:18)
А если таблица user ключ u_id, таблица ban ключ b_id и внешний ключ u_id и еще таблица access с ключами a_id и b_id, то как объединить таблицы user и access?

Либо я не понял вопроса, либо не понимаю проблему:

SELECT * FROM users 
LEFT JOIN ban ON (users.u_id = ban.u_id)
LEFT JOIN access ON (ban.b_id = access.b_id)


_____________
[продано копирайтерам]
Valick
Цитата
Либо я не понял вопроса, либо не понимаю проблему:

речь о USING

_____________
Стимулятор ~yoomoney - 41001303250491
twin
Valick
Как любят тут иногда говорить - открой для себя комментарии.

CREATE TABLE IF NOT EXISTS `test` (
`id` int(5) NOT NULL AUTO_INCREMENT,
`id_parent` int(5) DEFAULT NULL COMMENT 'user_id',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

Их очень замечательно видно не только в дампах, но и в PMA.
Вообще сквозные имена очень хороши, если работаешь с составными запросами. Когда запрос собирается динамически. Еще хороши при использовнии универсальных скриптов, где иначе приходится прописывать все эти названия. Ну и еще есть куча вкусняшек. Тут я же говорю - кто к чему привык. Лично для меня профита от сквозных имен на круг получается больше.

AllesKlar
Имелся ввиду инструмент USING.


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

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
twin
glock18
Не заметил
Цитата
INSERT SELECT то не мешает использовать
При полном копировнии мешает smile.gif

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

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
Valick
CREATE TABLE IF NOT EXISTS `test` (
`id` int(5) NOT NULL AUTO_INCREMENT,
`id_parent` int(5) DEFAULT NULL COMMENT 'user_id',
PRIMARY KEY (`id`)
)
ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

ок, добавь сюда еще один внешний ключ
__
сквозные имена со сквозящими дырами? :D

_____________
Стимулятор ~yoomoney - 41001303250491
Valick
Цитата
glock18
Не заметил
Цитата
INSERT SELECT то не мешает использовать
При полном копировнии мешает

Цитата
Как любят тут иногда говорить - открой для себя
twin
Не вник в проблему... Что может помешать и где дыры?

UPD А алиасы вообще тут причем?

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

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
Valick
Цитата
CREATE TABLE IF NOT EXISTS `test` (
  `test_id` int(5) NOT NULL AUTO_INCREMENT,
  `user_id` int(5) DEFAULT NULL ,
  `ban_id` int(5) DEFAULT NULL ,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

по мне так в такой таблице и без комментариев много чего понятно, а так же и в запросах (где нет комментариев) гораздо яснее
___
например в запросе test.id_parent и test.user_id имеют колосальные различия информативности.

_____________
Стимулятор ~yoomoney - 41001303250491
Valick
Цитата
Не вник в проблему... Что может помешать

вникать не надо, просто добавь еще один внешний ключ в свою тестовую таблицу, тем более что действительно помешать этому ничего не может.

Цитата
А алиасы вообще тут причем?

вот при этом
Цитата
При полном копировнии мешает
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.