|
|
|
именование колонок
|
|||
|---|---|---|---|
|
#18+
кто подскажет, как именовать внешний ключ (особенно, в ситуации, если их два на одну таблицу)? Сейчас имеем префексирование: Есть таблица: InternetHost: ihId pk Есть таблица: OnlineOrder с ключами на пользователя и ресурс-источник в InternetHost Сейчас это называется ooUser_ihId ooSite_ihId - префиксы указывают, что эти поля внешние на таблицу InternetHost. Думаю, от префексирования будем уходить. Будем использовать схему OrderInfo, таблицу назовём Data. Подскажите, мб есть какието доки по стилям именования или как нам именовать поля-внешние ключи в этой ситуации. Заранее, спасибо за участвие) p.s. это в продолжение темы про схемы Модератор: Тема перенесена из форума "Microsoft SQL Server". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2009, 17:47 |
|
||
|
именование колонок
|
|||
|---|---|---|---|
|
#18+
на данный момент, лучшее что придумал - HostId_User, HostId_Site (таблица будет называться Host в схеме OnlineOrder, PK = Host.Id) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2009, 19:14 |
|
||
|
именование колонок
|
|||
|---|---|---|---|
|
#18+
bublikom, я стараюсь именовать примерно так... к примеру есть "сущности" user, host, online_user... когда делаю таблицу для неё, добавляю _list - потом в коде, для меня это маркер что это именно таблица то есть user_list, host_list, online_user_list... если через PK на эту таблицу будут ссылаться, то соответствненно user_id, host_id... online_user_id - довольно длинно, и я назвал бы ou_id или ouser_id если PK больше нигде не нужен, то его просто называю id и заглавных букв не использую ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2009, 20:47 |
|
||
|
именование колонок
|
|||
|---|---|---|---|
|
#18+
Кифирчик, предложенные вами правила мне кажутся не рациональными. префиксы уйдут обсуждение тут . насчет подчеркиваний: я против - можно заглавными/прописными ограничиться, это лишний символ. понятно, что если я назову колонку Id, в коде я не найду (точнее, могу упустить) где используется Id таблицы OnlineOrder.Data. я думаю это не критично, в этом случае по имени таблицы можно сделать поиск и уже провести анализ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2009, 20:59 |
|
||
|
именование колонок
|
|||
|---|---|---|---|
|
#18+
bublikom, почитал ваш топик... понятно что вам не нравится... вы хотите чтоб ваши таблицы как-то логически группировались в списке.. в EMS есть такая возможность.. .делать "папки" и там группировать что и как хотите... либо приставку в виде одной буквы... сейчас как раз буду одну базку "реструктурировать", и таблички уже так обозвал, с приставкой... очень даже ничего в списке объектов всё по группам... "поддчеркивания/заглавных букв"... ИМХО нерационально заморачиваться, что длинна названия таблицы была 33, а стала 37 символов... и Id <> ld ... латинские i и L очень похожи... я так понял у вас несколько человек работают на проектом... так вот кто-то будет добросовестно писать GeoData... а кто-то раз нечайно напишет Geodata... ой каша потом будет... а потом будет весело, когда привыкнешь выделять слова заглавными буквами... и делаешь что-нить на FireBird... где токо в одном регистре можно именовать... или на Postgres, где GeoData <> Geodata вы ещё на кирилице имена объектов попробуйте делать... будет вообще очень наглядно ) про голый id, я говорил что использую его в случаях, где он нигде не нужен, то есть на него не ссылаются. без префиксов плохо... в базе есть разные объекты, их по разному используешь... к примеру user_list - список пользователей (можно tbl_user) view_user_list_login - список для формы логина view_user_list_adm - список для формы администрирования fun_user_access(...) - функция возвращающая права пользователя proc_user_save(...) - хранимка для сохранения данных пользователя proc_user_delete(...) - храника для удаления пользователя чтобы сгрупировать в списке... например есть ещё ряд таблиц относящихся к user... с префиксами рядом будут user_list - список пользователей u_access_list - таблица прав пользователей u_show_settings_list - настройки отображения для пользователей u_events_log - лог событий пользователей в запросах всё через алиасы... SELECT * FROM user_list AS a LEFT JOIN u_show_settings_list AS b ON a.user_id = b.user_id разбивать по схемам... пробовал... можно сказать только для того, чтобы "было лучше видно" 30 таблиц разнёс по 5 схемам... сейчас плююсь... я использую EMS и там для каждой схемы - отдельно дерево а не один список для всей базы... напряжно прыгать... монитор не такой большой как хотелось бы буду всё скидывать в dbo... наверно раскидывать по схемам имеет смысл, когда таблиц более 40, и разделяемы данные хоть и связаны, но относятся к разным "приложеням"... так сказать "большие" логические группы... и если нет ньюансов с правами, то удобно их назначать... одной командой, на схему ) по поводу "не целесообразности"... дело конечно Ваше... и мои "правила" только моё ИМХО... меня очень устраивает ) в же потом напишите на чём остановились... любопытно ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2009, 22:35 |
|
||
|
именование колонок
|
|||
|---|---|---|---|
|
#18+
Хм... ИМХО для имени ПК главное - это уникальность в базе (схеме). По крайнем мере, если как в MSSQL имя ключа не используется в коде (разве что индексы хинтовать). Я применяю схему PK_ имя таблицы для первичного ключа и AK_ имя таблицы_поля ключа для альтернативных ключей. PK - как правило, суроггатный ключ, цельночисленный или GUID идентификатор. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2009, 23:06 |
|
||
|
именование колонок
|
|||
|---|---|---|---|
|
#18+
DeColo®es дада, суррогатный везде, хотя опыт использования составных ПК и не оставил жуткий воспоминаний (вродебы больше целостность, но в таблицах мрак - особенно когда ПК - 3 и более поля) а зачем уникальность имени ПК в рамках схемы? Кифирчик EMS идею понел, возьмем на рассмотрение. Подчёркивания не рассматриваются, простите, это мой личный таракан) немного с эстетической стороны, немного из-за длинны, немного изза написания - чуточку затормаживает. у нас проект на MS и если понадобится на Firebird - будет реализовано отдельно, покачто нет смысла плодить сущности. про префиксы - эта база не будет видна наружу, вьюх пока не будет, а будут - максимум будет префикс vTableName. f, p слишком длинные ваши fun_, proc_ про схемы. тут подробнее, почему плюетесь? . понятно, что будут роли дающие права на часть или на все схемы. в чем проблема? таблиц думаю будет 50 (до сотни предположительно) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2009, 00:16 |
|
||
|
именование колонок
|
|||
|---|---|---|---|
|
#18+
bublikom про схемы. тут подробнее, почему плюетесь? . понятно, что будут роли дающие права на часть или на все схемы. в чем проблема? таблиц думаю будет 50 (до сотни предположительно) плююсь, что неудобно прыгать при кодировании между разными схемами, да и разделение прав по схемам - не сработало... таблицы/процедуры очень взаимосвязаны, так что для каждых ролей права всё равно в ручную пообъектно выставлять приходится... то есть хотел упростить себе работу с назначением прав - не вышло хотел чтобы было логически сгруппировано - тоже не удобно, далеко прыгать лучше сгруппировать в одном месте с преффиксами... ещё раз повторюсь... ИМХО схемы, наверно имеют больший смысл, когда в одной базе какие-то очень разноплановые данные... у которых не так много связей между собою, или нет вообще... гипотетический пример... в одной БД надо уместить - база по документам, по земельным участкам и... допустим по органиациям... тут общее что... список пользователей c инд.настройками... между базами по 0..2 связи я бы сделал четыре схемы: - user_ch (ch=chema) - doc_ch - org_ch - zem_ch с правами это вряд-ли что-то упростит, а вот процесс разработки будет намного проще... это по сути разные "приложения" опять же, это всё зависит от того что за приложение... одна крайность - это когда я 30 таблиц по 5 схемам раскидал, другая что мне попадалась, это когда ~1900 таблиц, и примерно столько же процедур - в одной схеме (dbo), хотя я бы там выделили с 2 десятка логических "подгрупп"... было бы на порядк проще ориентироваться ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2009, 09:58 |
|
||
|
именование колонок
|
|||
|---|---|---|---|
|
#18+
я думаю, у нас всё проще потому что у нас почти трёхзвенка, а именно ASP. у нас будут таблицы, триггеры, внешние ключи, индексы и всё. вьюх, хранимок не будет (покрайней мере пока я их не вижу). в этом случае, будет 5-10 схем, исключительно для логического(визуально) разделения. покачто, с уходом префиксов, остаётся вопрос об именовании внешних ключей. или, если есть какието фундаментальные предложения/предостережения по поводу проблемы описанной в теме про схемы , я почитаю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2009, 12:14 |
|
||
|
именование колонок
|
|||
|---|---|---|---|
|
#18+
Практика показывает, что для заводить под БД системы больше одной схемы нерационально. Для этого должны быть весьма весомые причины, обычно связанные с разграничением доступа. Для логической и визуальной группировки объектов схемы есть много других простых и удобных способов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2009, 14:59 |
|
||
|
именование колонок
|
|||
|---|---|---|---|
|
#18+
mcureenab а можно поконкретнее? Вы уж простите, но выглядит голословно. какие могут быть проблемы? Вот участиник предложил, мне идея понравилась ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2009, 20:13 |
|
||
|
именование колонок
|
|||
|---|---|---|---|
|
#18+
А мне не понравилась. Я когда то пытался упражняться со схемами. Мало того, что приходилось скакать между схемами по сто раз на дню, постоянно раздавать объектные привилегии, так ещё для развёртывания тестовой системы пришлось создавать отдельную БД. При этом я хотел только отделить БД от кода. А уж если БД раздербанить по схемам, то париться придётся долго и трудно. С другой стороны я видел много систем у которых БД состоит из сотен таблиц лежащих в одной схеме и никого из пользователей и разработчиков это не бодало вообще. Найти любые таблицы хоть по префиксу, хоть по названию сущности не составляло никакого труда. Важно только давать объектам стандартные имена и немного ориентироваться в сущностях, которыми занимаешься. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2009, 03:04 |
|
||
|
именование колонок
|
|||
|---|---|---|---|
|
#18+
mcureenab спасибо, теперь немного понятнее. мне по большому счёту только нужна визуальная группировка таблиц, и я уже начинаю понимать, что будет напряжно со схемами и оно того не стоит ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2009, 14:00 |
|
||
|
именование колонок
|
|||
|---|---|---|---|
|
#18+
mcureenabА мне не понравилась. Я когда то пытался упражняться со схемами. Мало того, что приходилось скакать между схемами по сто раз на дню, постоянно раздавать объектные привилегии, так ещё для развёртывания тестовой системы пришлось создавать отдельную БД.Oracle? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2009, 15:08 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=36192880&tid=1543080]: |
0ms |
get settings: |
9ms |
get forum list: |
18ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
168ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
73ms |
get tp. blocked users: |
2ms |
| others: | 241ms |
| total: | 535ms |

| 0 / 0 |
