powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Правило создания таблиц!
16 сообщений из 41, страница 2 из 2
Правило создания таблиц!
    #35121406
Leximus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
egorychпредложенные префиксы как у таблиц, так и у вьюх навязывают клиенту БД знание, которое ему абсолютно не нужно, а в некоторых случаях ещё и вредно. И всё это ради сомнительного удобства быстро найти объект в списках менеджера? в топку такие префиксы :)

Что подразумевается в понятии клиент БД? Если пользователь, то он вообще не будет этим пользоваться, он будет пользоваться непосредственно Клиентской программой, а она уж сама всё разрулит! А если программист БД, то мне кажется в запросе сразу будет видно где искать необходимый объект!
...
Рейтинг: 0 / 0
Правило создания таблиц!
    #35121550
mcureenab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В Оракле есть представления словаря БД ALL_CATALOG, так что выяснить тип отношения не составляет труда. Однако, запросы к представлениям приходится делать с большой осторожностью, поскольку их эффективность может оказаться просто катастрофической. Посему я использую суффикс _V. Вообще, довольно редко представленя БД удаётся использовать повторно, так что на счёт их названий можно особо не париться.
В идеале представления и таблицы должны быть взаимозамеяемыми. С этой позиции различать их не есть хорошо, ведь рано или поздно отношение, которое было таблицей может стать представлением и наоборот, а украшения названий только внесёт путаницу.
...
Рейтинг: 0 / 0
Правило создания таблиц!
    #35121725
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mcureenab пишет:

> Это только пример не претендующий на полноту. В паспорте этот атрибут

Ну я и дополнил :-)
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Правило создания таблиц!
    #35121728
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leximus пишет:
> А как вы считаете, префикс таблицы должен быть или нет?
Нет.

> Мне кажется что удобно былобы в запросе сразу видеть что и к какому типу
> относится!

Для этого есть алиасы таблиц, которые в запросах обязательно должны
и так использоваться для сложных запросов.

Ведь например если запрос из представления то его долго можно
> искать в списке таблиц в менеджере! А вы как считаете?

Чего его искать -то ? не понял нифига. У него есть имя, оно уникально,
взял да нашел.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Правило создания таблиц!
    #35121733
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aviant пишет:

> вот поэтому у представлений и имеет смысл делать префикс.
> У таблиц - нет

Чем таблица от представления функционально отличается ?
Ничем. Так что и префиксов не надо.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Правило создания таблиц!
    #35121736
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mcureenab пишет:
> В Оракле есть представления словаря БД ALL_CATALOG, так что выяснить тип
> отношения не составляет труда.

Это есть практически во всех современных СУБД,

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

Так не надо делать такие вьюхи просто.

> Вообще, довольно редко представленя БД удаётся использовать повторно,
> так что на счёт их названий можно особо не париться.

Если его нельзя использовать повторно, то на фиг оно вообще нужно ?

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

Во, это -- правильная мысль.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Правило создания таблиц!
    #35121946
Pan Vlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Nafкстати вопрос, таблицы именовать в единственном числе али множественном?
Народ! Каждый делает как ему удобно, но если рассуждать здраво, что такое таблица? Как нам правильно напомнил MasterZiv, это сущность. Вот от этого и надо плясать. Если у меня в таблице хранится список контрагентов, например, тогда логично назвать ее Customer, а вот если там связь, скажем, между каждым студентом и семестрами, в которых он учился, тогда StudentSemesters. Допускаю что я где-то могу быть неправ, однако, по моему скромному мнению, тут вопрос принципиальный.
...
Рейтинг: 0 / 0
Правило создания таблиц!
    #35122077
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leximus egorychпредложенные префиксы как у таблиц, так и у вьюх навязывают клиенту БД знание, которое ему абсолютно не нужно, а в некоторых случаях ещё и вредно. И всё это ради сомнительного удобства быстро найти объект в списках менеджера? в топку такие префиксы :)
Что подразумевается в понятии клиент БД? клиент БД, естественно, подразумевается клиентская программа, пользователю вообще вредно знать, что есть какая-то там БД :) mcureenab и MasterZiv фактически ответили за меня и я с ними полностью согласен.
Pan Vlad... однако, по моему скромному мнению, тут вопрос принципиальный. а по моему не менее скромному - абсолютно нет :) ибо это не тот вопрос, из-за которого стоит ломать копья, как кому удобней, тот так и называет. Главное здесь, чтобы было понятно, какую сущность собой представляет отношение (как таблица, так и представление).
...
Рейтинг: 0 / 0
Правило создания таблиц!
    #35122266
mcureenab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivОднако, запросы к представлениям
> приходится делать с большой осторожностью, поскольку их эффективность
> может оказаться просто катастрофической.

Так не надо делать такие вьюхи просто.


Разные ситуации бывают.

Код: plaintext
select * from <view>;

Скорее всего будет работать как положено.

Работоспособность

Код: plaintext
select * from <view> where <predicate>;

Будет зависеть от <predicate>.

Запрос

Код: plaintext
select * from <view>, ... where <predicate>;

Наверняка потребует настройки, если вообще не придётся создавать специально заточенные под него представления. Утешает только то, что с каждым годом СУБД становятся умнее и лучше решают задачи оптимизации сложных SQL запросов.



MasterZiv
> Вообще, довольно редко представленя БД удаётся использовать повторно,
> так что на счёт их названий можно особо не париться.

Если его нельзя использовать повторно, то на фиг оно вообще нужно ?



Например, для декомпозиции сложного SQL запроса на несколько простых, чтобы читаемость запроса улучшить, уменьшить объём сетевого трафика на передачу текста SQL запроса, разместить логику отбора данных на стороне СУБД, обеспечить разграничение доступа на уровне строк. Иногда приложение БД налагает ограничения на синтаксис SQL запросов, так что запрещённые фразы приходится прятать в представление.

В общем, как правило представление затачивается для решения довольно узкого класса задач и использовать его для решения других задач не эффективно.
...
Рейтинг: 0 / 0
Правило создания таблиц!
    #35122566
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mcureenab пишет:

> Например, для декомпозиции сложного SQL запроса на несколько простых,
> чтобы читаемость запроса улучшить, уменьшить объём сетевого трафика на
> передачу текста SQL запроса,

О, да я погляжу, вы достойные проблемы там решаете... Особенно актуальна
проблема сетевого траффика, создаваемого большими запросами.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Правило создания таблиц!
    #35122744
Фотография Роман Дынник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не претендую на "идеальную" систему наименований, вообще главное чтобы она была :)
Различные системы наименований обсуждались неоднократно и как правило эти обсуждения превращались в филосовские войны.
По вышеперечисленному придерживаюсь следующей:
>>Все имена таблиц должны начинаться на символ “t” (Например “tUsers”).
Таблицы именуются в единственном числе без префиксов .
Для вьюх использую префикс (vUser). Многие предпочитают не использовать префикс ни для вьюх ни для таблиц.

>>Поля в таблице делятся на следующие категории :
Нет необходимости делить их по категориям.
>>Имена полям таблицы присваиваются по следующим правилам:
Поле ПК имеет всегда одно и тоже имя во всех таблицах (ID, SID или OID)
Поле внешнего ключа именуется по правилу: TableName1TableName2ID (например: EmployeeDepartmentID)
Наименование полей данных отражают их содержание, например, DocumentDate
Примечание: MS, например не рекомендует оверхед, т.е. вместо DocumentDate рекомендует просто Date.
Но на практике удобнее изначально иметь оверхед, чем вручную писать и путаться с алиасами при написании запросов. Также удобно при использовании различных генераторов хп и вью.
Вообщем предпочитаю иметь уникальное название поля в рамках всей БД (исключение - ПК)
...
Рейтинг: 0 / 0
Правило создания таблиц!
    #35123203
Фотография Программист-Любитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Роман ДынникВообщем предпочитаю иметь уникальное название поля в рамках всей БД (исключение - ПК)Тоже но с ПК в том числе <Префикс типа> + <ИмяТаблицы> + <УточняющийCуффикс>
...
Рейтинг: 0 / 0
Правило создания таблиц!
    #35125586
mcureenab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Роман Дынник
Поле внешнего ключа именуется по правилу: TableName1TableName2ID (например: EmployeeDepartmentID)


А что делать, если имеет место двойная (множественная) связь таблиц? Или FK ссылается на вторичный ключ?

Да и ID подразумевает наличие суррогатного ключа, который может отсутствовать. В объектных БД ODI вообще скрыт от пользователя, так что PK можно выбирать живой.

Выходит стандарты сильно зависят от подхода к проктированию БД, а так же от системных ограничений или расширений, так что для каждой БД скорее всего будут применяться свои стандарты именования объектов. Не важно какие, важно, чтобы они просто были и соблюдались.

Интерес представляет просто перечень вопросов, на которые нужно дать ответ в процессе разработки стандарта. Готовые решения полезны только в качестве примера.
...
Рейтинг: 0 / 0
Правило создания таблиц!
    #35127396
Фотография Роман Дынник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mcureenabВыходит стандарты сильно зависят от подхода к проктированию БД
Выходит - Да :)
...
Рейтинг: 0 / 0
Правило создания таблиц!
    #35127812
Фотография Программист-Любитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Фигня! Придумать Самый Лучший Самый Правильный способ именования - и опа! Все базы сами стремительно разработаются. Останется только сидеть в потолок поплёвывая.
...
Рейтинг: 0 / 0
Правило создания таблиц!
    #35128571
mcureenab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Потому профессионалы и не любят любителей, что те у них хлеб отнимают.
...
Рейтинг: 0 / 0
16 сообщений из 41, страница 2 из 2
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Правило создания таблиц!
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]