powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Насколько удобно именовать все поля таблиц с префиксом таблиц?
74 сообщений из 74, показаны все 3 страниц
Насколько удобно именовать все поля таблиц с префиксом таблиц?
    #37896727
sylex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пример:

news
n_ id
n_ name
n_ cat
n_ description

pages
p_ id
p_ name
p_ text

news_cat
nc_ id
nc_ name

news_2_cat
n2c_ cat_id
n2c_ n_cat

items
it_ id
it_ name

items_categorys
itc_ id
itc_ name

и так во всех таблицах. Насколько это удобней? Кто так часто делает?

Тем самым в запросах мы можем не использовать алиасы таблиц - вроде удобней)
...
Рейтинг: 0 / 0
Насколько удобно именовать все поля таблиц с префиксом таблиц?
    #37896739
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sylexТем самым в запросах мы можем не использовать алиасы таблиц - вроде удобней)
Код: sql
1.
2.
3.
4.
5.
6.
7.
-- вариант с префиксами и без алиасов:
SELECT items.it_id, items.it_name, items_categories.itc_item_id, items_categories.itc_name
  FROM items INNER JOIN items_categories ON items.it_id = items_categories.itc_item_id

-- вариант без префиксов, но с алиасами:
SELECT i.id, i.name, ic.item_id, ic.name
  FROM items i INNER JOIN items_categories ic ON i.id = ic.item_id

что удобней, решай сам
...
Рейтинг: 0 / 0
Насколько удобно именовать все поля таблиц с префиксом таблиц?
    #37896750
sylex,

мало букв в префиксах надо больше.
и мало цифр в названиях, надо больше цифр, сленга, жаргонизмов.
авторв запросах мы можем не использовать алиасы таблиц
на собеседовании можешь заработать себе парочку баллов высказав подобную идею. в центре занятости такие баллы на пособие обменивают.
...
Рейтинг: 0 / 0
Насколько удобно именовать все поля таблиц с префиксом таблиц?
    #37896764
sylex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
если позволите, профессор.sylex,

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

я не про собеседование, а про реальную практику спрашиваю!

у меня действительно есть один аргумент, а у вас никаких кроме трепа!
...
Рейтинг: 0 / 0
Насколько удобно именовать все поля таблиц с префиксом таблиц?
    #37896767
sylex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
egorychsylexТем самым в запросах мы можем не использовать алиасы таблиц - вроде удобней)
Код: sql
1.
2.
3.
4.
5.
6.
7.
-- вариант с префиксами и без алиасов:
SELECT items.it_id, items.it_name, items_categories.itc_item_id, items_categories.itc_name
  FROM items INNER JOIN items_categories ON items.it_id = items_categories.itc_item_id

-- вариант без префиксов, но с алиасами:
SELECT i.id, i.name, ic.item_id, ic.name
  FROM items i INNER JOIN items_categories ic ON i.id = ic.item_id

что удобней, решай сам

в том то и дело, в первом случае по-короче можно:

Код: sql
1.
2.
3.
-- вариант с префиксами и без алиасов:
SELECT it_id, it_name, itc_item_id, itc_name
  FROM items INNER JOIN items_categories ON it_id = itc_item_id
...
Рейтинг: 0 / 0
Насколько удобно именовать все поля таблиц с префиксом таблиц?
    #37896778
sylex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
в общем, плюсы префиксов:

1. не требуется писать алиасов для таблиц (как правило запросы короче)
2. удобно при больших запросах - четко видишь, от какой таблицы идет поле, даже не видя таблицу
3. меньше путанницы - при обычном подходе: в разных запросах, когда много таблиц - можешь дать разные алиасы для одних и тех же таблиц - если же есть префиксы - все стандартизированно на всю БД раз и навсегда
4. меньше путанницы при выборке из присоединенных таблиц - когда много одних и тех же name, id - приходится давать алиасы полям при выборке, при использовании префиксов - ничего этого не нужно, никогда не путаешься
...
Рейтинг: 0 / 0
Насколько удобно именовать все поля таблиц с префиксом таблиц?
    #37896782
ksv55
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sylex,

Часто дают названия по шаблону поле_таблица, для полей типа счетчиков (id_items), PK, FK.
Для других полей как то не приживается. Имя таблицы лучше не сокращать.
...
Рейтинг: 0 / 0
Насколько удобно именовать все поля таблиц с префиксом таблиц?
    #37896850
оценят
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sylexв общем, плюсы префиксов:

1. не требуется писать алиасов для таблиц (как правило запросы короче)
2. удобно при больших запросах - четко видишь, от какой таблицы идет поле, даже не видя таблицу
3. меньше путанницы - при обычном подходе: в разных запросах, когда много таблиц - можешь дать разные алиасы для одних и тех же таблиц - если же есть префиксы - все стандартизированно на всю БД раз и навсегда
4. меньше путанницы при выборке из присоединенных таблиц - когда много одних и тех же name, id - приходится давать алиасы полям при выборке, при использовании префиксов - ничего этого не нужно, никогда не путаешься
как только написанных строчек кода станет больше одной, аргументация несколько изменится.
12930967 еще раз перечитать и посидеть подумать.
авторв общем, плюсы префиксов
для публикации на персональной страничке вконтакте годится 100%
друзья оценят масштаб аналитики.
...
Рейтинг: 0 / 0
Насколько удобно именовать все поля таблиц с префиксом таблиц?
    #37896855
Максим Н
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sylex,
Лично я за чистые имена, без префиксов. Никогда не понимал зачем издеваться над простыми понятными имена наподобие "NAME", "VALUE", "COUNT" и превращать их в "ANR_NAME", "DLT_VALUE", "ARTRLW_COUNT".
При составлении запросов я всегда пишу алиасы, даже когда запрос из одной таблицы, просто уже до автоматизма дошло, и если к нему добавиться еще одна таблица, то не нужно ничего переписывать.
Хотя сейчас на работе префиксы используем, особого дискомфорта не испытываю, но не мое это.
...
Рейтинг: 0 / 0
Насколько удобно именовать все поля таблиц с префиксом таблиц?
    #37896914
sylex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Максим ННикогда не понимал зачем издеваться над простыми понятными имена ...

я же объяснил уже - зачем "издеваться"

для удобства, для простоты

понятно, что каждый привык по своему и вряд ли отступит...

понятно, что можно делать алиасами, и не париться...

но тогда:

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

хотелось бы выслушать мнение остальных, кто что использует?
...
Рейтинг: 0 / 0
Насколько удобно именовать все поля таблиц с префиксом таблиц?
    #37896916
sylex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
оценяткак только написанных строчек кода станет больше одной, аргументация несколько изменится.

кроме как чухни нести - ты больше ниче не можешь, аргументируй свою позицию
...
Рейтинг: 0 / 0
Насколько удобно именовать все поля таблиц с префиксом таблиц?
    #37897008
Всякая одинаковая фигня перед осмысленными (уникальными) названиями - издевательство и мешается, например дико бесит необходимость это набирать при интеллисенсе.
...
Рейтинг: 0 / 0
Насколько удобно именовать все поля таблиц с префиксом таблиц?
    #37897049
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sylexНасколько это удобней?
Где-то на минус триста процентов.

sylexКто так часто делает?
Таких не встречал.

sylexТем самым в запросах мы можем не использовать алиасы таблиц - вроде удобней)
То есть вместо двухсимвольного префикса (t.), который мы можем использовать, предлагается двухсимвольный (t_) префикс, который мы не можем не использовать. При этом отваливаются мелкие удобства, типа одинаковых имён слева и справа, необходимость сделать внешний ключ порождает глубокие размышления "с каким же префиксом назвать поле", но зато как только требуется использовать таблицу в запросе дважды - или просто использовать в запросе таблицы с одинаковым префиксом - приходится возвращаться к старой схеме.

Вывод: у Вас крайне нетривиальное представление об удобствах.
...
Рейтинг: 0 / 0
Насколько удобно именовать все поля таблиц с префиксом таблиц?
    #37897119
Фотография Finsman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Koh Convention defines field naming/sorting convention for MS SQL Server development policy on military/government grade projects and others type of developments where a built-in change testing enforcement is required.
Fields in the table definition are sorted alphabetically.
Field names are written with capital letters separating the words, e.g. ClientNameAtBirth.
The field name is separated from the suffix by an "underscore".
The suffix includes Primary/Foreign Key alias,DataType alias, and the string length (for n/var/char type only).

<Field Name>+<_>+<Primary/Foreign Key alias><DataType Alias>+<Length> (for n/var/char type only)

Example
Table "Client"

Id_PKui -Primary Key UniqueIdentifier
NameAtBirth_vn255 -nvarchar(255)
CurrentAddressId_FKui -Foreign Key Unique Identifier
TotalFingersAtBirth_iy -tinyint

DataType Aliases:
bt -bit

iy -tiny integer
is -small integer
it -integer
ib -big integer

n -num
mn -money
ms -small money
dc -decimal
f -float
r -real

cr50 -char(50)
cn50 -nchar(50)
vc50 -varchar(50)
vn50 -nvarchar(50)

tx -text
tn -ntext

ds -small datetime
dt -datetime
d -date
t -time
dt2 -datetime2
dto -datetime offset

bn -binary
bv -varbinary
img -image


cur -cursor
tsp -timestamp
hi -hierarchyid
ui -uniqueidentifier

sv -sql_variant
x -xml
tbl -table
...
Рейтинг: 0 / 0
Насколько удобно именовать все поля таблиц с префиксом таблиц?
    #37897148
ChaosMP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1) Если нужно связать таблицу саму с собой или просто использовать ее несколько раз в запросе все равно придется использовать алиасы.
2) Не знаю кто как, но я пишу в PL/SQL Developer, там есть Code Assistant, т.е. я пишу алиас точка и вижу список полей таблицы с этим алиасом, без этого мне нужно будет помнить все поля всех таблиц? Нет уж, увольте.
...
Рейтинг: 0 / 0
Насколько удобно именовать все поля таблиц с префиксом таблиц?
    #37897160
denisofff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sylexКто так часто делает?
Я так часто делаю.

softwarerТо есть вместо двухсимвольного префикса (t.), который мы можем использовать, предлагается двухсимвольный (t_) префикс, который мы не можем не использовать.
Предположим, что первичный ключ у всех называется id, тогда для каждой (ну или почти каждой) таблицы в запросе нужно прописать алиас.

softwarerно зато как только требуется использовать таблицу в запросе дважды - или просто использовать в запросе таблицы с одинаковым префиксом - приходится возвращаться к старой схеме.

Истинно верно. Но насколько много запросов используют одну и ту же таблицу дважды? У меня - не более 5%.

А еще при выборке для каждого поля "name", нужно делать свой алиас. Пусть есть 3 таблицы: машина, цвет, модель кузова. В каждой есть поле id - первичный ключ и name - отвечающее за название. Чтобы сделать простую выборку - нужно прописывать каждому полю name свой алиас.

Код: sql
1.
2.
3.
4.
5.
SELECT cr.id, cr.name AS car_name, cl.name AS color_name, cr.name AS carbody_name
FROM 
dbo.Car cr
INNER JOIN dbo.Color cl ON cl.id = cr.id_color
INNER JOIN dbo.CarBody cb ON cb.id = cr.id_body



В общем, я не понимаю такой ненависти к префиксам полей.
...
Рейтинг: 0 / 0
Насколько удобно именовать все поля таблиц с префиксом таблиц?
    #37897186
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sylexПример:

news
n_ id
n_ name
n_ cat
n_ description

pages
p_ id
p_ name
p_ text

news_cat
nc_ id
nc_ name

news_2_cat
n2c_ cat_id
n2c_ n_cat

items
it_ id
it_ name

items_categorys
itc_ id
itc_ name

и так во всех таблицах. Насколько это удобней? Кто так часто делает?

Тем самым в запросах мы можем не использовать алиасы таблиц - вроде удобней)

Префиксы, возможно, могут иметь пользу в каком-то упрощении понимания смысла запросов, когда есть несколько основных (наиболее часто встречающихся в запросах) таблиц, для тех кто часто сталкивается с запросами к этой БД, када пишет запросы много разного народа с разными стилями написания. Тогда, видимо, префиксы запомнились и не надо искать FROM, чтобы понять какой таблице принадлежат имена столбцов.
Возможно, у суррогатов этот префикс сокращение имени таблы и потому суррогаты запоминаются по любому, и они быстрей попадаются на глаза чем FROM.

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

Кроме того, когда много таблиц с подобными именами можект возникнуть трудностти с придумыванием префиксов и соотвественно их пониманием потом. Например, в Вашей схеме было бы еще таблица item_class. Ее префикс судя по всему дролжен быть как и у items_categorys: itc, другой буит сбивать с толку: откуда такое наименование - излишнии для прользы дела мыстли. Однако, itc - неприемлемо совсем.

Я видел стандарты фирм где три первые символа в имени колонки - это префикс от имени таблицы. Причем те кто их создавал давно ушли, но теперь единообразие стиля в этом плане имеет значение: проектов много и запроосы в них читать проще. Например, часто встречающийся префикс - указывает на основную таблу в БД.
...
Рейтинг: 0 / 0
Насколько удобно именовать все поля таблиц с префиксом таблиц?
    #37897192
sylex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
softwarersylexНасколько это удобней?
Где-то на минус триста процентов.

ну ка формулу рассчета - в студию :)

softwarersylexКто так часто делает?
Таких не встречал.

надо же, поразительно, за такую большую практику! а я встречаю, и не один раз

а префиксы для таблиц, я так понял, вы очень даже используете! Правильно? Это верный подход?

В общем, как я понял, у каждого свое мнение, и редко кто от него отступится

Каждый делает кому как удобней, я просто хотел узнать как делают другие
...
Рейтинг: 0 / 0
Насколько удобно именовать все поля таблиц с префиксом таблиц?
    #37897194
sylex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ChaosMP1) Если нужно связать таблицу саму с собой или просто использовать ее несколько раз в запросе все равно придется использовать алиасы.

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

ChaosMP2) Не знаю кто как, но я пишу в PL/SQL Developer, там есть Code Assistant, т.е. я пишу алиас точка и вижу список полей таблицы с этим алиасом, без этого мне нужно будет помнить все поля всех таблиц? Нет уж, увольте.

если там есть Code Assistant, то достаточно помнить префикс таблицы - и также использовать эту возможность по полной! Если вы знаете о какой таблице идет речь - то и префикс помнить/знать - никаких проблем!
...
Рейтинг: 0 / 0
Насколько удобно именовать все поля таблиц с префиксом таблиц?
    #37897200
sylex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vadiminfoПрефиксы, возможно, могут иметь пользу в каком-то упрощении понимания смысла запросов, когда есть несколько основных (наиболее часто встречающихся в запросах) таблиц, для тех кто часто сталкивается с запросами к этой БД, када пишет запросы много разного народа с разными стилями написания. Тогда, видимо, префиксы запомнились и не надо искать FROM, чтобы понять какой таблице принадлежат имена столбцов.
Возможно, у суррогатов этот префикс сокращение имени таблы и потому суррогаты запоминаются по любому, и они быстрей попадаются на глаза чем FROM.

спасибо за ответ) я тоже так думаю)

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

я думаю понять не проблема, когда мы посмотрим на структуру таблицы и наглядно видим, что КАЖДОЕ ПОЛЕ ИМЕЕТ ПРЕФИКС, не сложно догадаться - что похоже на имя таблицы) еще посмотрим пару таблиц - и ясность в нашей голове - как ясный день и чистое небо :)

vadiminfoКроме того, когда много таблиц с подобными именами можект возникнуть трудностти с придумыванием префиксов и соотвественно их пониманием потом. Например, в Вашей схеме было бы еще таблица item_class. Ее префикс судя по всему дролжен быть как и у items_categorys: itc, другой буит сбивать с толку: откуда такое наименование - излишнии для прользы дела мыстли. Однако, itc - неприемлемо совсем.

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

в приведенном примере, я бы использовал:
items_categorys - itcat
item_class - itclass or itc
...
Рейтинг: 0 / 0
Насколько удобно именовать все поля таблиц с префиксом таблиц?
    #37897217
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sylexя думаю понять не проблема, когда мы посмотрим на структуру таблицы и наглядно видим, что КАЖДОЕ ПОЛЕ ИМЕЕТ ПРЕФИКС, не сложно догадаться - что похоже на имя таблицы) еще посмотрим пару таблиц - и ясность в нашей голове - как ясный день и чистое небо :)

Я имел в виду не то что догадаться сложно, а именно сложнее чем без этого. В частности, надо просматривать для этого структуру, Вы говорите. Но если к примеру, Вам поручили просто чисто добиться производительности отчета в котором несколько запросов в другом проекте. То просматривание структур всех таблиц, возможно, - дополнительное усилие.
Это не критично, но все же.

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

Все же их малость - это предположение. Пусть не часто но бывает.

sylexв приведенном примере, я бы использовал:
items_categorys - itcat
item_class - itclass or itc

Но это уже почти имя всей таблицы. И тут может быть что-то связанное с тем, что имена в целом длинноваты могуи быть.

Хотя с другой стороны, например, одинаковые имена колонок у разных таблов, я думау, чрезмерно плохая идея. И потому стандарт на префиксы может обезопасить от этого, када БД проектируют (допроектируют - добавляют таблицы) чиста проггеры драйверов.
...
Рейтинг: 0 / 0
Насколько удобно именовать все поля таблиц с префиксом таблиц?
    #37897228
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sylexНасколько это удобней? Кто так часто делает?Встречал, так делают совсем начинающие программисты.

sylexв общем, плюсы префиксов:

1. не требуется писать алиасов для таблиц (как правило запросы короче)
2. удобно при больших запросах - четко видишь, от какой таблицы идет поле, даже не видя таблицу
3. меньше путанницы - при обычном подходе: в разных запросах, когда много таблиц - можешь дать разные алиасы для одних и тех же таблиц - если же есть префиксы - все стандартизированно на всю БД раз и навсегда
4. меньше путанницы при выборке из присоединенных таблиц - когда много одних и тех же name, id - приходится давать алиасы полям при выборке, при использовании префиксов - ничего этого не нужно, никогда не путаешься1. С алиасами таблиц запросы получатся короче (т.к. обычная длинна алиаса короче обычной длинны префикса). Так что лучьше приоблести привычку всегда писать алиасы таблиц.

2,4. Вот с алиасами таблиц всё и будет видно. А вот с префмксами не будет, потому что кроме запоминания названий таблиц (что просто, т.к. они осмысленные) нужно будет запоминать код таблицы (префикс).

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

Система префиксов имеет главный недостаток - в небольшой системке в БД будет сотня таблиц, с префиксами всё не будет так уж ясно. Префиксы будут не понятными кодами в одну букву, а именно абстрактым кодом, типа nge, nsx, grx, tls.
...
Рейтинг: 0 / 0
Насколько удобно именовать все поля таблиц с префиксом таблиц?
    #37897236
dymka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Лично я всегда пишу поля с префиксами. Для чего? А что бы можно было составить словарь предметной области по наименованиям полей таблиц и вьюх.

news:
news_id
news_title
news_description

categories:
cat_id
cat_name

Но если есть таблица, которая ссылается на другую, то в этом случае я не приписываю к ключевому полю новый префикс:
news_categories:
news_cat_id (к примеру суррогат автоинк)
cat_id
news_id (т.е. news_id во всей БД обозначает ровно одно - идентификатор новости)

это зачастую избавляет от случайных ошибок в join:
Код: sql
1.
2.
3.
4.
5.
select n.news_id, nc.cat_id, nc.news_title, c.cat_name
from news as n
  join news_categories as nc on nc.news_id = n.news_id
  join categories as c on c.cat_id = nc.cat_id
...



Но я также всегда использую алиасы таблиц. Это все-же надежнее. К тому же во многих редакторах запросов уже есть подсказки полей по набранному алиасу с точкой. Да и к тому же в "моей" системе наименований без алиасов никуда :)

Ну естественно могут возникать коллизии - например идентификатор следующей новости - next_news_id итп...
А главное - выбрать для себя какой-нибудь стандарт и придерживаться его.
...
Рейтинг: 0 / 0
Насколько удобно именовать все поля таблиц с префиксом таблиц?
    #37897255
Vladimir Baskakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а сколько таблиц в префиксируемой базе? десяточек? а если пятьдесят? а если сотня? а в ОЕБС например.... счет на десятки тысяч идет - там префиксируются не поля таблиц, а сами таблицы и пакеты - 2-3 буквенным кодом предметной области.

Уважаемый sylex, прошу считать мои слова не аргументом, а бессмысленным бредовым бормотанием старого сетевого тролля. Так всем будет проще.
...
Рейтинг: 0 / 0
Насколько удобно именовать все поля таблиц с префиксом таблиц?
    #37897259
Vladimir Baskakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
клозу юзинг никто не отменял если что - когда 2 таблы нужно объединить по одноименным полям. Удачи в проектировании!
...
Рейтинг: 0 / 0
Насколько удобно именовать все поля таблиц с префиксом таблиц?
    #37897261
sylex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
я никогда не использовал префиксы, если честно

но вот сейчас на разработке - новый проект, и будет существенная реструктуризация его...

и я думаю, о том, чтобы заложить правильный фундамент

решил выяснить, насколько правильно будет - переписать структуру БД и часть проекта - на префиксы...

Сейчас, если честно, окончательно запутался...
...
Рейтинг: 0 / 0
Насколько удобно именовать все поля таблиц с префиксом таблиц?
    #37897265
sylex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alexeyvgСистема префиксов имеет главный недостаток - в небольшой системке в БД будет сотня таблиц, с префиксами всё не будет так уж ясно. Префиксы будут не понятными кодами в одну букву, а именно абстрактым кодом, типа nge, nsx, grx, tls.

в одной БД - порядка 30 таблиц разных

и сейчас я увидел эту мешанину непонятный префиксов

действительно, имеет место

наверное, глупая затея - переходить на префиксы
...
Рейтинг: 0 / 0
Насколько удобно именовать все поля таблиц с префиксом таблиц?
    #37897322
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
On 07/29/2012 01:13 PM, sylex wrote:

> и так во всех таблицах. Насколько это удобней? Кто так часто делает?

Мы так делаем. Ну да, как бы иногда можно без алиасов обходится.

>
> Тем самым в запросах мы можем не использовать алиасы таблиц - вроде удобней)

Да по барабану. Зато надо использовать префиксы полей. Которые нечитаемы и
портят читаемость запроса.
К тому же если таблица используется в запросе несколько раз, то без алиасов
всё равно не обойтись.

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Насколько удобно именовать все поля таблиц с префиксом таблиц?
    #37897331
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sylexно вот сейчас на разработке - новый проект, и будет существенная реструктуризация его...

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

Конечно, это имеет смысл, если модель данных немаленькая - до сотни таблиц можно не заморачиваться.

Некоторые в качестве такого префикса модуля используют схему - тоже неплохой вариант.
...
Рейтинг: 0 / 0
Насколько удобно именовать все поля таблиц с префиксом таблиц?
    #37897417
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
denisofffПредположим, что первичный ключ у всех называется id, тогда для каждой (ну или почти каждой) таблицы в запросе нужно прописать алиас.
Это предположение может быть ложно. Вне зависимости от этого "прописать алиас" в этом случае окажется никак не хуже "использовать префикс" - в "лучшем случае" два символа в одном случае и два в другом, зато в "худшем случае" алиас окажется даже не то что удобнее - просто его точно надо будет прописывать.

Отдельно замечу, что практически все опытные sql-разработчики прописывают алиасы автоматом. Кое-кто не пишет их в случае запроса из одной таблицы, а многие используют и в этом случае. Инструменты разработки учитывают это, например список полей таблицы часто выбрасывается на точку после алиаса.

denisofffИстинно верно. Но насколько много запросов используют одну и ту же таблицу дважды? У меня - не более 5%.
В разных задачах по-разному. В целом и 5% "отступлений от правила" - безумно много, это разрушает автоматизм. Кроме того, для базы из 10 таблиц префиксы, наверное, не будут пересекаться, но уже в базе из 100 таблиц наверняка будет десяток таблиц, разделяющих наиболее популярную букву префикса.

denisofffПусть есть 3 таблицы: машина, цвет, модель кузова. В каждой есть поле id - первичный ключ и name - отвечающее за название. Чтобы сделать простую выборку - нужно прописывать каждому полю name свой алиас.
Ага :) А если учитывать, что машина - это CAR, цвет - это COLOR, а кузов - это CARCASS, при использовании префиксов C получится просто замечательный запрос

denisofffВ общем, я не понимаю такой ненависти к префиксам полей.
Она сродни "ненависти" к камешку в ботинке. Его просто выбрасывают.

sylexну ка формулу рассчета - в студию :)
Сто процентов неудобства - на постоянные "здесь играем, здесь не играем", сто процентов - на отваливающиеся инструменты разработчика, сто процентов - на сочетания в запросах "алиасов и префиксов вместе". Кажется, именно так я решил ночью.

sylexнадо же, поразительно, за такую большую практику! а я встречаю, и не один раз
Подобное тянется к подобному. Большинство.... странных практик я встречал, когда приходилось импортить данные из внешних источниках. В собственных разработках везде, где работал, было довольно прилично (с моей точки зрения), в другие места я просто не шёл.

sylexа префиксы для таблиц, я так понял, вы очень даже используете! Правильно? Это верный подход?
В случае, если предполагается достаточно большая база, состоящая из нескольких чётко выделенных модулей, я как правило использую префиксы, идентифицирующие модуль. Эти префиксы относятся к таблицам, пакетам, а также вспомогательным объектам - индексам, последовательностям итп. Чем больше таблиц, тем больше такие префиксы оправдывают "несколько лишних букв", особенно потому, что в "различных модулях" склонны появляться "одноимённые таблицы", скажем, "документы", и префиксы позволяют очевидно и чётко развести их.
...
Рейтинг: 0 / 0
Насколько удобно именовать все поля таблиц с префиксом таблиц?
    #37897488
sylex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
softwarer,

большое спасибо за развернутый ответ!

вот еще нашел минус префиксов:

- что будет, если нужно будет переименовать табличку? ;)
...
Рейтинг: 0 / 0
Насколько удобно именовать все поля таблиц с префиксом таблиц?
    #37897633
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sylex, дать префикс - это причислать к какому-то классу.
Поля таблицы уже причислены к классу - к самой таблице, а SQL с инструментами сегодня позволяют использовать их вместе практически везде, кроме алиаса поля в разделе проекции запроса (и то для некоторых субд это не проблема :).

Поэтому полезнее ввести во внутренний стандарт не префиксы для всех полей таблицы, а:
1. стандарты для наименований суррогатных полей
2. стандарты для алиасов таблиц в запросах.
3. стандарты для префиксов алиасов полей в проекции запроса, если в проекте по тем или иным причинам не получается использовать для них что-то типа "car_items.name".
...
Рейтинг: 0 / 0
Насколько удобно именовать все поля таблиц с префиксом таблиц?
    #37897685
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerВ случае, если предполагается достаточно большая база, состоящая из нескольких чётко
выделенных модулей, я как правило использую префиксы, идентифицирующие модуль. Эти
префиксы относятся к таблицам, пакетам, а также вспомогательным объектам - индексам,
последовательностям итп.
А почему префиксы, а не схемы? Аргументы-то в точности те же: "префикс_" vs "схема."
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Насколько удобно именовать все поля таблиц с префиксом таблиц?
    #37897704
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АнатоЛойsylex, дать префикс - это причислать к какому-то классу.
Поля таблицы уже причислены к классу - к самой таблице, а SQL с инструментами сегодня позволяют использовать их вместе практически везде, кроме алиаса поля в разделе проекции запроса (и то для некоторых субд это не проблема :).

Ну тада уж шла не о причислении к чему либо, а дополнительном обозначении ранее сделанного причисления причисления. Ну типа как дневной свет у авто в дополнение.

И почему именно именно это полезнее тоже вроде не совсем ясно.

АнатоЛойПоэтому полезнее ввести во внутренний стандарт не префиксы для всех полей таблицы, а:
1. стандарты для наименований суррогатных полей
2. стандарты для алиасов таблиц в запросах.
3. стандарты для префиксов алиасов полей в проекции запроса, если в проекте по тем или иным причинам не получается использовать для них что-то типа "car_items.name".

Ить стандарты на именование элементов структур должно знать, меньше народу (проектировщики), по сравнению с теми кто пишет запросы. Например, в связи с авралом Вы привлекли для написания отчетов всех сотрудников фирмы, включая уборщиц. И они что будут учить стандарты? Им не до алиасов буит.

У нас же идея, что чем проще извлечение инфы, тем луче, поскоку это главная цель ИС.
Вполть до того - как бы ни спросил она тебя поняла, и дала ответ.

Вот проетирование структур ради этого может быть обремено дополнительными затратами.
...
Рейтинг: 0 / 0
Насколько удобно именовать все поля таблиц с префиксом таблиц?
    #37897743
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovА почему префиксы, а не схемы? Аргументы-то в точности те же: "префикс_" vs "схема."
В моём случае префикс$. Знак подчёркивания используется в названиях таблиц и пакетов, а вот знак доллара - практически никогда, поэтому он удобен для выделения префикса.

Потому, что схемы в большинстве случаев - слишком тяжёлое решение. Они практически требуют, чтобы приложение было единственным в экземпляре БД - в то время как приложение "в одной схеме" вполне можно устанавливать совместно с другими, в том числе в неизвестную заранее (определяемую при инсталляции) схему. Это, конечно, если мы говорим о продаваемой системе, а не о внутрифирменной разработке. Со схемами начинаются вопросы внутренней раздачи прав - чтобы хранимый код из одного модуля мог работать с хранимками или с данными из другого. Со схемами становится затруднительным накат патча в рамках одного соединения с БД - надо или выдавать чересчур сильные привилегии типа ALTER ANY TABLE, или постоянно переключаться между схемами (и ещё как-то держать пароль в скриптах, между прочим), или плодить дырки типа procedure EXECUTE_MY_DLL... В общем, в своих разработках я не доходил до такого количества таблиц, чтобы захотелось возиться со схемами. Также, само собой, сказанное относится к схемам в Oracle.. допускаю, что в каких-либо других СУБД это будет удобным решением.

Сугубо на будущее, я надеюсь, что рано или поздно идеологи дойдут до понятия иерархической схемы (типа my.application.module), и тогда это станет удобным и удачным решением вместо префиксов.
...
Рейтинг: 0 / 0
Насколько удобно именовать все поля таблиц с префиксом таблиц?
    #37897753
denisofff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
softwarerВне зависимости от этого "прописать алиас" в этом случае окажется никак не хуже "использовать префикс" - в "лучшем случае" два символа в одном случае и два в другом, зато в "худшем случае" алиас окажется даже не то что удобнее - просто его точно надо будет прописывать.
А почему два символа? Все алиасы определяются как a, b, c, d... z? Не шибко-то удобно и наглядно (или только мне так кажется).

softwarerВ разных задачах по-разному. В целом и 5% "отступлений от правила" - безумно много, это разрушает автоматизм. Кроме того, для базы из 10 таблиц префиксы, наверное, не будут пересекаться, но уже в базе из 100 таблиц наверняка будет десяток таблиц, разделяющих наиболее популярную букву префикса.
Самая большая база на моем попечении имеет 160 таблиц. Есть пара префиксов в 4 символа, пара десятков в 3 и все остальные в 2. Тем более, что совсем необязательно иметь уникальный префикс для каждой таблицы. Например, ST - это может быть и Street и SystemType, как правило, не используемые вместе.


softwarerАга :) А если учитывать, что машина - это CAR, цвет - это COLOR, а кузов - это CARCASS, при использовании префиксов C получится просто замечательный запрос
А кто сказал, что на префикс надо пускать один символ? :-)


Вообще, почитав обсуждения, я понял, что большинство участников работает с очень большими и масштабными проектами на многие сотни таблиц. Тут я согласен, что может начаться путаница с префиксами. В любом случае, как мне кажется, главное, чтобы был стандарт именования между разработчиками и однозначное понимание всех именований.

Пару лет назад мне пришлось разбираться в старой базе данных в каком-то формате, который не позволял длину поля больше 10 символов. Там приходилось понимать, что куда предназначено, почти что по данным в таблице. Так что чуть более длинное название поля, я считаю, не является страшным, если оно помогает уловить суть. Кажется, у Стива Макконела было написано "не жертвуйте понятностью кода ради его производительности". Лучше написать несколько лишних символов префикса, чем потерять в понимании. Если понимание легко приходит и через алиасы - то пусть будет так. Видимо я еще не созрел до такого уровня :)
...
Рейтинг: 0 / 0
Насколько удобно именовать все поля таблиц с префиксом таблиц?
    #37897770
Фотография Программист-Любитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
denisofffВообще, почитав обсуждения, я понял, что большинство участников работает с очень большими и масштабными проектами на многие сотни таблиц. Тут я согласен, что может начаться путаница с префиксами. В любом случае, как мне кажется, главное, чтобы был стандарт именования между разработчиками и однозначное понимание всех именований.

Пару лет назад мне пришлось разбираться в старой базе данных в каком-то формате, который не позволял длину поля больше 10 символов. Там приходилось понимать, что куда предназначено, почти что по данным в таблице. Так что чуть более длинное название поля, я считаю, не является страшным, если оно помогает уловить суть. Кажется, у Стива Макконела было написано "не жертвуйте понятностью кода ради его производительности". Лучше написать несколько лишних символов префикса, чем потерять в понимании. Если понимание легко приходит и через алиасы - то пусть будет так. Видимо я еще не созрел до такого уровня :)
Наоборот, чем больше таблиц - тем длинее "префиксы".
У меня правило именования таблиц: префикс (DIC, TAB, TCR, ...) + корень.
Полей: префикс (i, n, s, db, mn, dt) + корень из имени таблицы + уточняющий суффикс (ID, Count, Amount, Quantity, From, To, Code, ...)
Фантазии в придумывании имен не остается.
...
Рейтинг: 0 / 0
Насколько удобно именовать все поля таблиц с префиксом таблиц?
    #37897771
Cane Cat Fisher
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я работал с большой системой, использующей префиксы. Своеобразно, но особых ужасов и неудобств не заметил - к единообразию привыкнуть легко. Так что все аргументы "удобно-неудобно", "путанее/распутанее" - дело привычки.

Технически, преимущество одно: уникальность имени атрибута в системе. То есть, из какого бы запроса не приехал атрибут, на клиенте всегда однозначно ясно, что это и откуда.

Нужно ли это, и важно ли это в большинстве обычных систем? Пожалуй, не особенно.

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

Кстати, большинство SQL-запросов там тоже генерились автоматически, так что вопрос (не)удобства их составления отпадал сам собой.

Теперь о суровых мерах, которые пришлось принять, чтобы эту идею довести до работоспособного логического завершения:

1. Каждой таблице должен соответствовать префикс. Минимальной длины (3-4) символа, но максимальной мнемоничной понятности. Уникальный в пределах БД.

(Кстати, эта идея - сопоставить длинному, понятному имени таблицы "технический", сокращенный префикс, и использовать его в именовании связанных объектов, не нова, и предлагается, например, здесь: Oracle Naming Conventions . Правда, там его используют в именах ключей, а для полей не рекомендуют. Но сама идея, и принцип составления заслуживают внимания).

Так вот, в именах полей используется именно этот префикс.

Как вариант, сами таблицы можно поназывать разумно-покороче, и использовать их имена как префиксы. Понятно, это для небольших БД.

2. Формализуем названия полей для внешних ключей. Если ссылка между таблицами ровно одна - название полей с обеих сторон (1 и N) ключа одинаково. Если ссылок больше - к полям на стороне "N" добавляются смысловые суффиксы, например "_X", "_Y".

3. Формализуем именование алиасов, если таблица участвует в запросе более одного раза. Суть в том, что каждый такой "раз" получает уникальный смысловой суффикс (он же алиас таблицы в запросе, например "_PARENT", "_CHILD"), и все поля из этого экземпляра таблицы получают в своих алиасах в добавку к своим именам этот суффикс.

Мое мнение: можно жить и с этим, и без этого. Включение префиксов таблиц в имена полей позволяет двинуть систему в сторону "пусть безобразно, но единообразно". Если это вызвано какими-то дополнительными требованиями, например, использованием метаданных, или автоматической генерацией SQL, - то это может быть оправдано технически. Если нет - то может порадовать разве что любителей "военного" порядка в БД, в ущерб "книжной" наглядности.

Об авторитетных мнениях. Скандально известный Джо Селко в обсуждении этого вопроса сначала ссылается на некий ISO-11179 который требует уникальности имени скалярного атрибута в пределах всего словаря (то есть как-бы за префиксы). Затем разбивает эту идею в пух и прах в главе "Избегайте описательных префиксов". Впрочем, разбивает скорее эмоциями, чем доводами.

А вот система приверженца префиксов: link , тоже достаточно стройная.
...
Рейтинг: 0 / 0
Насколько удобно именовать все поля таблиц с префиксом таблиц?
    #37897807
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
denisofffА почему два символа?
А кто сказал, что на префикс надо пускать один символ? :-)
Мне казалось, что это мелькало у топикстартера. Сейчас пересмотрел - на нашёл. Это, конечно, срезает мои соответствующие пассажи.

denisofffВообще, почитав обсуждения, я понял, что большинство участников работает с очень большими и масштабными проектами на многие сотни таблиц.
Большие и масштабные - вопрос дискуссионный, но "сотни таблиц" уже давно имхо норма, если только не используется тотальное EAV или что-то подобное. Если вспомнить... кроме сугубо проектов "для себя" у меня за всю жизнь было кажется два проекта с менее чем сотней таблиц.

denisofffВ любом случае, как мне кажется, главное, чтобы был стандарт именования между разработчиками и однозначное понимание всех именований.
Безусловно.
...
Рейтинг: 0 / 0
Насколько удобно именовать все поля таблиц с префиксом таблиц?
    #37897812
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cane Cat Fisher(Кстати, эта идея - сопоставить длинному, понятному имени таблицы "технический", сокращенный префикс, и использовать его в именовании связанных объектов, не нова, и предлагается, например, здесь: Oracle Naming Conventions . Правда, там его используют в именах ключей, а для полей не рекомендуют. Но сама идея, и принцип составления заслуживают внимания).
Боюсь, эта идея растёт на 99% из устаревшего ораклового ограничения идентификатора в 30 байт. Оно не составляет заметной проблемы, когда мы придумываем названия для полей и таблиц, но иногда неприятно стреляет, когда генерируем имена для вторичных объектов (скажем, FK_TABLE1_TABLE2 уже запросто может нарушить это ограничение).
...
Рейтинг: 0 / 0
Насколько удобно именовать все поля таблиц с префиксом таблиц?
    #37897828
Cane Cat Fisher
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerБоюсь, эта идея растёт на 99% из устаревшего ораклового ограничения идентификатора в 30 байт. Оно не составляет заметной проблемы, когда мы придумываем названия для полей и таблиц, но иногда неприятно стреляет, когда генерируем имена для вторичных объектов (скажем, FK_TABLE1_TABLE2 уже запросто может нарушить это ограничение).

Возможно. Но, возвращаясь к Оракловому примеру, (таблицы у них называются APPLICATION_FUNCTIONS и APPLICATON_FUNCTION_ROLES), если даже воображаемое имя ключа "APPLICATION_FUNCTIONS_APPLICATON_FUNCTION_ROLES_FK" и будет допустимо по длине, то многие предпочтут все же скромный APFU_APPL_FK. Тем более - его, скорее всего, ни читать, ни набирать часто не придется, а лишь иногда поискать "ой, что это нарушилось?".
...
Рейтинг: 0 / 0
Насколько удобно именовать все поля таблиц с префиксом таблиц?
    #37897857
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cane Cat Fisherто многие предпочтут все же скромный APFU_APPL_FK. Тем более - его, скорее всего, ни читать, ни набирать часто не придется, а лишь иногда поискать "ой, что это нарушилось?".
Именно поэтому - "не думаю, что многие предпочтут". Прочитать прямо в имени ограничения "что нарушилось" гораздо удобнее, нежели набирать что-нибудь типа select table_name, r_table_name from user_constraints where constraint_name = 'APFU_APPL_FK'. А в целом - единообразие таких идентификаторов гораздо важнее (удобнее) их длины, и как только техника позволит, уверен, резко увеличится количество команд с жёсткими стандартами кодирования в этом месте, причём стандартами, поддержанными скриптами и прочими местными инструментами генерации структуры, реакции на ошибки и прочей работы с БД.
...
Рейтинг: 0 / 0
Насколько удобно именовать все поля таблиц с префиксом таблиц?
    #37897866
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
denisofff Пару лет назад мне пришлось разбираться в старой базе данных в каком-то формате, который не позволял длину поля больше 10 символов. Там приходилось понимать, что куда предназначено, почти что по данным в таблице. Так что чуть более длинное название поля, я считаю, не является страшным, если оно помогает уловить суть.
Суть помогают уловить содержательные (изменяемые) метаданные. А Вы говорите о (неизменяемых) технических метаданных, то есть об идентификаторах полей и таблиц. Они как раз могут быть какими угодно, хоть просто цифрами:) Ваша беда в том, что ни "старая база", о которой Вы рассказали, ни "абсолютно новая" не содержат содержательных метаданных. Они находятся какой-то другой системе или даже в приложении.
Вся эта тема не имеет большого смысла, так как относится к каким-то несовременным технологиям БД, видимо, "реляционным":)
...
Рейтинг: 0 / 0
Насколько удобно именовать все поля таблиц с префиксом таблиц?
    #37898066
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sylexнаверное, глупая затея - переходить на префиксы
Абсолютно. Вы еще забыли про view - а с ними что делать ?
...
Рейтинг: 0 / 0
Насколько удобно именовать все поля таблиц с префиксом таблиц?
    #37898292
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vadiminfoАнатоЛойsylex, дать префикс - это причислать к какому-то классу.
Поля таблицы уже причислены к классу - к самой таблице, а SQL с инструментами сегодня позволяют использовать их вместе практически везде, кроме алиаса поля в разделе проекции запроса (и то для некоторых субд это не проблема :).

Ну тада уж шла не о причислении к чему либо, а дополнительном обозначении ранее сделанного причисления. Ну типа как дневной свет у авто в дополнение.

Аналогии не понял.
...
Рейтинг: 0 / 0
Насколько удобно именовать все поля таблиц с префиксом таблиц?
    #37898297
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vadiminfoИть стандарты на именование элементов структур должно знать, меньше народу (проектировщики), по сравнению с теми кто пишет запросы. Например, в связи с авралом Вы привлекли для написания отчетов всех сотрудников фирмы, включая уборщиц. И они что будут учить стандарты? Им не до алиасов буит.

А уборшицам в вашем случае с префиксами полей не нужно учить стандарты префиксов полей? Если нет - какой же им толк от этих префиксов? А если да, то "И они что будут учить стандарты"?!!!.
...
Рейтинг: 0 / 0
Насколько удобно именовать все поля таблиц с префиксом таблиц?
    #37898299
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vadiminfoУ нас же идея, что чем проще извлечение инфы, тем луче, поскоку это главная цель ИС.
Вполть до того - как бы ни спросил она тебя поняла, и дала ответ.

Думаю суть этой формулировки испарится вместе с парами алкоголя из любой головы.
...
Рейтинг: 0 / 0
Насколько удобно именовать все поля таблиц с префиксом таблиц?
    #37898308
pirovindos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_модsylexнаверное, глупая затея - переходить на префиксы
Абсолютно. Вы еще забыли про view - а с ними что делать ?

Если продвинуть идею дальше, то в при разработке на любом ОО ЯП для каждого члена класса нужно давать префикс - имя класса...
...
Рейтинг: 0 / 0
Насколько удобно именовать все поля таблиц с префиксом таблиц?
    #37898309
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vadiminfoИ почему именно именно это полезнее тоже вроде не совсем ясно.

Уточняю. На моей практике аргументированно во внутренний стандарт вносились не префиксы для всех полей таблицы, а:

1. стандарты для наименований суррогатных полей
одинаковая функциональная нагрузка таких полей у разных таблиц наиболее часто порождает желание добавить в их наименование имя таблицы или его производную.
Как следствие - наиболее часто возникают разные принципы именования. Чтобы эти принципы контролировать - и нужен стандарт.
Именно для суррогатные полей можно договориться использовать префиксы. Но в 3 больших проектах я не видел использование префиксов -максимум, сокращение имени чтобы втиснуться в ограничения БД по длине наименования.
И то - волевым решением. Не было аргументов, чем теоретически и практически "car.id" хуже, чем "car.car_id" :)

2. стандарты для алиасов таблиц в запросах.
а) практически всё равно возникнут запросы с использованием одной и той же таблицы несколько раз в одном запросе.
б) я же предлагаю использовать алиасы таблиц вместо префиксов полей. Логично, что вместо стандарта префиксов понадобится стандарт алиасов. В чём вопрос?!


3. стандарты для префиксов алиасов полей в проекции запроса, если в проекте по тем или иным причинам не получается использовать для них что-то типа "car_items.name".
Аналогично, п.2. я же предлагаю использовать алиасы таблиц вместо префиксов полей. Логично, что вместо стандарта префиксов понадобится стандарт алиасов. В чём вопрос?!
...
Рейтинг: 0 / 0
Насколько удобно именовать все поля таблиц с префиксом таблиц?
    #37898376
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АнатоЛойАналогии не понял.
ну это было предположение тезис "дать префикс - это причислать к какому-то классу.", возможно, не очень удачно подходит, поскоку у ТС явно речь шла тока о дополнительных обозначениях ранее "причисленного к классу". Никакой структуробразуюшей роли в РМД этим префиксам не приписывалось.
Просто именование колонок, в отличии от "причисления к самой таблице": если Вы ей припишие префикс от другой талицы, или даже планеты, она останется том же классе "самой таблице", поскоку у этой РМД просто нет никаких других "классов", кроме таблиц. Ну уж такая эта наиболее успешная последние 30 лет МД.


АнатоЛойА уборшицам в вашем случае с префиксами полей не нужно учить стандарты префиксов полей? Если нет - какой же им толк от этих префиксов?
В том то и дело, уборщицам, скорее всего, не нужны стандрты никакие. Тем более если запросы пишут юзера у заказчика (на то и SQL, чтобы кажный мог написать).
А толк от этих префиксов может быть, например, но тем кто читает иногда запросы, написанные другими. Но их, скорее всего меньше, чем писателкй, квалификация выше.

Потому сопоставление пользы от стандартов на алиасы в запросах стандартам на образование имен структуры, возможно, нуждается в дополнительных аргументах кроме "дать префикс - это причислать к какому-то классу.",



АнатоЛойДумаю суть этой формулировки испарится вместе с парами алкоголя из любой головы. .
Ну может не из любой, а только из тех, что думают, что целью создания БД является - занять персонал набором данных, чтобы не сидели без дела на работе.
Буржуа придумал SQL, чтобы легче и быстрей инфу было извлеч, как моно большему народу из БД. Но тут мы пришли: нет есче, плиз, учите наши доморощеннные стандарты, прежде чем инфу извлекать. А как Вы хотели? Просто SQL написать каждый дурак может (спасибо Кодду).
Нужна инфа, написал по быстрому запрос и забыл? Мы не для того БД лабали. Для этого тока головы с алколем могут додуматься..
...
Рейтинг: 0 / 0
Насколько удобно именовать все поля таблиц с префиксом таблиц?
    #37898380
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vadiminfo,

за последние 30 лет что не тема - выходит к семантике в бд
с че бы это?
...
Рейтинг: 0 / 0
Насколько удобно именовать все поля таблиц с префиксом таблиц?
    #37898383
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vadiminfoможет (спасибо Кодду).
Нужна инфа, написал по быстрому запрос и забыл? Мы не для того БД лабали. Для этого тока головы с алколем могут додуматься..
select 'ishak dolbaniy' as 'kozel neuch' from dbo.doctoraBlinNauk
...
Рейтинг: 0 / 0
Насколько удобно именовать все поля таблиц с префиксом таблиц?
    #37898580
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosза последние 30 лет что не тема - выходит к семантике в бд
с че бы это?
30 лет уже длится эпоха РМД. Потому БД ассоциируется в основном тока с РМД. Ну, некоторые семантиченские недостаки у РМД есть (не принципальные). Тока такой ответ на Ваш вопрос приходит мне на ум.

ViPRos
select 'ishak dolbaniy' as 'kozel neuch' from dbo.doctoraBlinNauk
?
Ну вот видите, даже на языке деклассированного элемента можно получить инфу. А иму предложат доморещенный стандарты местного значения. Он то стандартов SQL, может не листал.
А ить SQL запросы есче могут генрериться на автомате. Например, из QBE. И опять туда руками свои домашние стандарты вставлять?
Чет-то мене эта идея - доморещенные стандарты на SQL все еще кажется перебором.
...
Рейтинг: 0 / 0
Насколько удобно именовать все поля таблиц с префиксом таблиц?
    #37898581
sylex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
_модsylexнаверное, глупая затея - переходить на префиксы
Абсолютно. Вы еще забыли про view - а с ними что делать ?

а что с ними нужно делать?
...
Рейтинг: 0 / 0
Насколько удобно именовать все поля таблиц с префиксом таблиц?
    #37898585
sylex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
АнатоЛойЛогично, что вместо стандарта префиксов понадобится стандарт алиасов. В чём вопрос?!

в том, что стандарт алиасов - тяжелей "поддерживать" (помнить, или как там)
...
Рейтинг: 0 / 0
Насколько удобно именовать все поля таблиц с префиксом таблиц?
    #37898590
sylex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vadiminfoпоскоку у ТС явно речь шла тока о дополнительных обозначениях ранее "причисленного к классу". Никакой структуробразуюшей роли в РМД этим префиксам не приписывалось.

подтверждаю
...
Рейтинг: 0 / 0
Насколько удобно именовать все поля таблиц с префиксом таблиц?
    #37898628
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sylexа что с ними нужно делать?
То же , что и с таблицами.
...
Рейтинг: 0 / 0
Насколько удобно именовать все поля таблиц с префиксом таблиц?
    #37898657
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_модТо же , что и с таблицами.
Так они сохраннные запросы, то и с запросами вообще надо делать то же что и с таблицами?
_мод, это был приказ?
...
Рейтинг: 0 / 0
Насколько удобно именовать все поля таблиц с префиксом таблиц?
    #37898659
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
опечатка: следует читать сохраненные запросы
...
Рейтинг: 0 / 0
Насколько удобно именовать все поля таблиц с префиксом таблиц?
    #37898699
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vadiminfoТак они сохраннные запросы
Нет, виртуальные таблицы.
...
Рейтинг: 0 / 0
Насколько удобно именовать все поля таблиц с префиксом таблиц?
    #37898704
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_мод,

А просто таблицы - материальные таблицы?

А просто запросы какие таблицы?
...
Рейтинг: 0 / 0
Насколько удобно именовать все поля таблиц с префиксом таблиц?
    #37898800
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vadiminfoА просто запросы какие таблицы?
А просто запросы - это временные таблицы. Короче, к ним ко всем надо применять префикс или не применять вообще. Теперь понятно ?
...
Рейтинг: 0 / 0
Насколько удобно именовать все поля таблиц с префиксом таблиц?
    #37898830
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_модА просто запросы - это временные таблицы.
Временные? А в Оракле есть другое понятие временных таблиц. Не знау теперь кого и слушать Вас или Оракла.

_модКороче, к ним ко всем надо применять префикс или не применять вообще. Теперь понятно ?
Нет не понятно с какого перепугу надо ко всем. Это приказ Путина или кого? Или закон госдума приняла во втором чтении?
Может еще к таблицам в Ворде надо применять? Есче в Екселе таблы есть.
...
Рейтинг: 0 / 0
Насколько удобно именовать все поля таблиц с префиксом таблиц?
    #37898831
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sylexChaosMP2) Не знаю кто как, но я пишу в PL/SQL Developer, там есть Code Assistant, т.е. я пишу алиас точка и вижу список полей таблицы с этим алиасом, без этого мне нужно будет помнить все поля всех таблиц? Нет уж, увольте.

если там есть Code Assistant, то достаточно помнить префикс таблицы - и также использовать эту возможность по полной! Если вы знаете о какой таблице идет речь - то и префикс помнить/знать - никаких проблем!

"Помнить префикс таблицы" - это не "учить"?

Предлагаю ещё вариант - приписывать не сокращение от имени таблицы к имени поля, а сразу всё имя таблицы.

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
-- вариант с префиксами и без алиасов:
SELECT items_id, 
            items_name, 
            items_categories_item_id, 
            items_categories_name
  FROM items 
           INNER JOIN items_categories 
              ON it_id = itc_item_id



1) всё понятно;
2) пишем не мы, а Code Completion;
3) экономить 200 байт на запросе - смешно;
4) понимается легко - не нужно учить/помнить/расшифровывать префиксы в имена таблиц;
5) читается быстро - и не надо говорить про "больше букв" - зашифрованные префиксы всё равно "разворачиваешь в голове", а на осмысление запроса времени всё равно уходит на порядки больше, чем на его чтение;
6) ручной контроль уникальности имён практически отпадает;
7) СУБД, имеющие ограничения для имён меньше 60 символов в топку;
8) увеличение затрат на парсинг запросов компьютером в наш век - смешно.

Аргументы?
...
Рейтинг: 0 / 0
Насколько удобно именовать все поля таблиц с префиксом таблиц?
    #37898837
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Даже вот так, чтобы совсем уж правильно было:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
-- вариант с именами таблиц в именах полей и без алиасов:
SELECT 
            item_id, 
            item_name, 
            item_categories_id, 
            item_categories_name
  FROM items 
           INNER JOIN items_categories 
              ON item_id = items_categories_item_id
...
Рейтинг: 0 / 0
Насколько удобно именовать все поля таблиц с префиксом таблиц?
    #37898852
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И вдогонку...

Разнесите на разные кучки:
1) процесс написания запроса
2) результат - сохранённый запрос
3) процесс чтения запроса

Префиксы дают положительный эффект только в процессе написания запроса - ускоряют ввод но только "продвинутым" запросописателям.

Тогда идеальная картинка: не одинаковые префиксы для всех пользователей, а функция редактора запроса по сочетанию букв вставлять название таблицы (макрос в FARе, автомзамена в Word и т.д.).
Хотите, расшаривайте настройки по автозамене на рабочую группу, а хотите - у каждого своё расшифровка для сокращения "it", всё равно в запросе будет полное имя таблицы.

И вот тут-то мы поймём, что можно жить и без префиксов в именах полей - достаточно везде использовать полные имена таблиц, простые имена полей без всяких префиксов и наименований таблиц, но везде использовать идетификацию поля с указанием таблицы .
...
Рейтинг: 0 / 0
Насколько удобно именовать все поля таблиц с префиксом таблиц?
    #37898866
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Красотища:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
-- идеальный вариант СОХРАНЁННОГО запроса:
SELECT 
            items.id, 
            items.name, 
            items_categories.id, 
            items_categories.name
  FROM items 
           INNER JOIN items_categories 
                      ON items.id = items_categories.item_id



В соединение с Code Completion, Syntax Auto Check, Code Formatter, Macros ПЕЧАТАЛОСЬ на клавиатуре:
"SEL it.id, it.na, itc.id, itc.na FRO it IJ itc ON it.id = itc.item_id"


Только вот кому оно надо?!
...
Рейтинг: 0 / 0
Насколько удобно именовать все поля таблиц с префиксом таблиц?
    #37898869
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АнатоЛойИ вот тут-то мы поймём, что можно жить и без префиксов в именах полей -...
Да и раньше понимали, что можно: в РМД нет такой идеи, что без них нельзя. Скорее они даже выглядят как исажение МД.
Но, к примеру, допустим Вы не хотите, чтобы в БД появились колонки с одинаковыми именами для разных атрбутов. Например, NAME. Но знаете, что БД допроектируют разные люди на протяжении ее ЖЦ. Ну стандарты на префексы могут помоч как-то. Не обязательно, конечно. Но все же.
...
Рейтинг: 0 / 0
Насколько удобно именовать все поля таблиц с префиксом таблиц?
    #37898881
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vadiminfoНо, к примеру, допустим Вы не хотите, чтобы в БД появились колонки с одинаковыми именами для разных атрбутов.
Давайте аргументированно (пусть не идеально, ну хотя бы из практики) - зачем?

Это похоже на мечту : вот бы у людей ФИО был: 1) уникальным, 2) выдаваемым при рождении, 3) никогда не менялся... :)
...
Рейтинг: 0 / 0
Насколько удобно именовать все поля таблиц с префиксом таблиц?
    #37898921
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АнатоЛойДавайте аргументированно (пусть не идеально, ну хотя бы из практики) - зачем?:


Ну, к примеру, РМД допускает проектирование из одной универсальной таблице ко многим таблицам, а в одной таблице одинаковых имен быть не может. Теория РБД рассматривает ФЗ между атрибутами, а как отличить кто от кого завист если имена одинаковые? А ить есть алгоритмы которые пытаются их искать автоматически.
Структура БД на то и структура, чтобы быть относительно статичной частью системы: одинаковые имена потенциал для ее модификации.
Так или иначе я не сомневаюсь, что проектировщик имет право на желание иметь в своей схеме уникальные атрибуты.
...
Рейтинг: 0 / 0
Насколько удобно именовать все поля таблиц с префиксом таблиц?
    #37899093
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vadiminfoНет не понятно с какого перепугу надо ко всем.
Плохо, что не понятно :)
...
Рейтинг: 0 / 0
Насколько удобно именовать все поля таблиц с префиксом таблиц?
    #37899104
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_модПлохо, что не понятно :)
Надеюсь, что не очень плохо в данном случае.
...
Рейтинг: 0 / 0
Насколько удобно именовать все поля таблиц с префиксом таблиц?
    #37899305
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vadiminfoНо, к примеру, допустим Вы не хотите, чтобы в БД появились колонки с одинаковыми именами для разных атрбутов.
Но знаете, что БД допроектируют разные люди на протяжении ее ЖЦ.
Ну стандарты на префексы могут помоч как-то. Не обязательно, конечно. Но все же.

Если допустим мы сильно не хотим, "чтобы в БД появились колонки с одинаковыми именами для разных атрибутов",
то чтобы помогло не "как-то", а ощутимо, нужно:

1. Требования уникальности полей в рамках БД - в "стандарт" (по возможности с аргументацией).
2. Правила/процедуры/инструменты формирования имён с обеспечением уникальных значений - в "стандарт".
3. Правила/процедуры/инструменты использования имён - в "стандарт".
4. Разработка правил/процедур/инструментов контроля уникальности.
5. Разработка правил/процедур/инструментов контроля следования стандарту.
6. Доведение стандарта до сведения проектировщиков таблиц, писателей/читателей запросов и прочих уборщиц.

И тут уж к каждом конкретном случае: а какой "объём" кода проекта, а сколько у нас человек в проекте вынуждены пользоваться стандартом, а как долго будет жить ПО (оптимистичненько), а какой это выигрыш в результате даст (в том числе моральное удовлетворение участников :) )...

И во всей этой кучке задач вариант с префиксами-кодами полей может оказаться ненужным усложнением.

Итого, ТС, для проекта в десяток-три таблиц вариант с префиксами-кодами полей вполне удобный - если не думаете сильно вырасти в ближайшей перспективе :).

А если вдруг наметите расти, рефакторинг Вам в руки перед ростом :).
...
Рейтинг: 0 / 0
Насколько удобно именовать все поля таблиц с префиксом таблиц?
    #37899447
sylex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
АнатоЛойИтого, ТС, для проекта в десяток-три таблиц вариант с префиксами-кодами полей вполне удобный - если не думаете сильно вырасти в ближайшей перспективе :).

А если вдруг наметите расти, рефакторинг Вам в руки перед ростом :).

хороший вывод, спасибо :)
...
Рейтинг: 0 / 0
74 сообщений из 74, показаны все 3 страниц
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Насколько удобно именовать все поля таблиц с префиксом таблиц?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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