|
|
|
Насколько удобно именовать все поля таблиц с префиксом таблиц?
|
|||
|---|---|---|---|
|
#18+
Пример: 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 и так во всех таблицах. Насколько это удобней? Кто так часто делает? Тем самым в запросах мы можем не использовать алиасы таблиц - вроде удобней) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2012, 12:13 |
|
||
|
Насколько удобно именовать все поля таблиц с префиксом таблиц?
|
|||
|---|---|---|---|
|
#18+
sylexТем самым в запросах мы можем не использовать алиасы таблиц - вроде удобней) Код: sql 1. 2. 3. 4. 5. 6. 7. что удобней, решай сам ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2012, 12:37 |
|
||
|
Насколько удобно именовать все поля таблиц с префиксом таблиц?
|
|||
|---|---|---|---|
|
#18+
sylex, мало букв в префиксах надо больше. и мало цифр в названиях, надо больше цифр, сленга, жаргонизмов. авторв запросах мы можем не использовать алиасы таблиц на собеседовании можешь заработать себе парочку баллов высказав подобную идею. в центре занятости такие баллы на пособие обменивают. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2012, 12:57 |
|
||
|
Насколько удобно именовать все поля таблиц с префиксом таблиц?
|
|||
|---|---|---|---|
|
#18+
если позволите, профессор.sylex, мало букв в префиксах надо больше. и мало цифр в названиях, надо больше цифр, сленга, жаргонизмов. авторв запросах мы можем не использовать алиасы таблиц на собеседовании можешь заработать себе парочку баллов высказав подобную идею. в центре занятости такие баллы на пособие обменивают. я не про собеседование, а про реальную практику спрашиваю! у меня действительно есть один аргумент, а у вас никаких кроме трепа! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2012, 13:22 |
|
||
|
Насколько удобно именовать все поля таблиц с префиксом таблиц?
|
|||
|---|---|---|---|
|
#18+
egorychsylexТем самым в запросах мы можем не использовать алиасы таблиц - вроде удобней) Код: sql 1. 2. 3. 4. 5. 6. 7. что удобней, решай сам в том то и дело, в первом случае по-короче можно: Код: sql 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2012, 13:24 |
|
||
|
Насколько удобно именовать все поля таблиц с префиксом таблиц?
|
|||
|---|---|---|---|
|
#18+
в общем, плюсы префиксов: 1. не требуется писать алиасов для таблиц (как правило запросы короче) 2. удобно при больших запросах - четко видишь, от какой таблицы идет поле, даже не видя таблицу 3. меньше путанницы - при обычном подходе: в разных запросах, когда много таблиц - можешь дать разные алиасы для одних и тех же таблиц - если же есть префиксы - все стандартизированно на всю БД раз и навсегда 4. меньше путанницы при выборке из присоединенных таблиц - когда много одних и тех же name, id - приходится давать алиасы полям при выборке, при использовании префиксов - ничего этого не нужно, никогда не путаешься ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2012, 13:44 |
|
||
|
Насколько удобно именовать все поля таблиц с префиксом таблиц?
|
|||
|---|---|---|---|
|
#18+
sylex, Часто дают названия по шаблону поле_таблица, для полей типа счетчиков (id_items), PK, FK. Для других полей как то не приживается. Имя таблицы лучше не сокращать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2012, 14:01 |
|
||
|
Насколько удобно именовать все поля таблиц с префиксом таблиц?
|
|||
|---|---|---|---|
|
#18+
sylexв общем, плюсы префиксов: 1. не требуется писать алиасов для таблиц (как правило запросы короче) 2. удобно при больших запросах - четко видишь, от какой таблицы идет поле, даже не видя таблицу 3. меньше путанницы - при обычном подходе: в разных запросах, когда много таблиц - можешь дать разные алиасы для одних и тех же таблиц - если же есть префиксы - все стандартизированно на всю БД раз и навсегда 4. меньше путанницы при выборке из присоединенных таблиц - когда много одних и тех же name, id - приходится давать алиасы полям при выборке, при использовании префиксов - ничего этого не нужно, никогда не путаешься как только написанных строчек кода станет больше одной, аргументация несколько изменится. 12930967 еще раз перечитать и посидеть подумать. авторв общем, плюсы префиксов для публикации на персональной страничке вконтакте годится 100% друзья оценят масштаб аналитики. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2012, 16:02 |
|
||
|
Насколько удобно именовать все поля таблиц с префиксом таблиц?
|
|||
|---|---|---|---|
|
#18+
sylex, Лично я за чистые имена, без префиксов. Никогда не понимал зачем издеваться над простыми понятными имена наподобие "NAME", "VALUE", "COUNT" и превращать их в "ANR_NAME", "DLT_VALUE", "ARTRLW_COUNT". При составлении запросов я всегда пишу алиасы, даже когда запрос из одной таблицы, просто уже до автоматизма дошло, и если к нему добавиться еще одна таблица, то не нужно ничего переписывать. Хотя сейчас на работе префиксы используем, особого дискомфорта не испытываю, но не мое это. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2012, 16:08 |
|
||
|
Насколько удобно именовать все поля таблиц с префиксом таблиц?
|
|||
|---|---|---|---|
|
#18+
Максим ННикогда не понимал зачем издеваться над простыми понятными имена ... я же объяснил уже - зачем "издеваться" для удобства, для простоты понятно, что каждый привык по своему и вряд ли отступит... понятно, что можно делать алиасами, и не париться... но тогда: а) нужно не запутаться, если таблиц много - помнить какой алиас - какой табличке (а то при добавлении новой с похожим именем - нужно свой алиас, а бывают две похожие по имени) б) всегда в выборке заботится об одинаковых полях в разн. таблицах - и назначать алиасы полям в) при джойне новой таблице в запрос - убедиться что есть алиасы в др. таблицах, добавить в выборку - с учетом пересечения всех полей всех таблиц (т.е. одинаковым - назначить алиасы) хотелось бы выслушать мнение остальных, кто что использует? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2012, 18:33 |
|
||
|
Насколько удобно именовать все поля таблиц с префиксом таблиц?
|
|||
|---|---|---|---|
|
#18+
оценяткак только написанных строчек кода станет больше одной, аргументация несколько изменится. кроме как чухни нести - ты больше ниче не можешь, аргументируй свою позицию ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2012, 18:35 |
|
||
|
Насколько удобно именовать все поля таблиц с префиксом таблиц?
|
|||
|---|---|---|---|
|
#18+
Всякая одинаковая фигня перед осмысленными (уникальными) названиями - издевательство и мешается, например дико бесит необходимость это набирать при интеллисенсе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2012, 22:02 |
|
||
|
Насколько удобно именовать все поля таблиц с префиксом таблиц?
|
|||
|---|---|---|---|
|
#18+
sylexНасколько это удобней? Где-то на минус триста процентов. sylexКто так часто делает? Таких не встречал. sylexТем самым в запросах мы можем не использовать алиасы таблиц - вроде удобней) То есть вместо двухсимвольного префикса (t.), который мы можем использовать, предлагается двухсимвольный (t_) префикс, который мы не можем не использовать. При этом отваливаются мелкие удобства, типа одинаковых имён слева и справа, необходимость сделать внешний ключ порождает глубокие размышления "с каким же префиксом назвать поле", но зато как только требуется использовать таблицу в запросе дважды - или просто использовать в запросе таблицы с одинаковым префиксом - приходится возвращаться к старой схеме. Вывод: у Вас крайне нетривиальное представление об удобствах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2012, 23:43 |
|
||
|
Насколько удобно именовать все поля таблиц с префиксом таблиц?
|
|||
|---|---|---|---|
|
#18+
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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2012, 03:49 |
|
||
|
Насколько удобно именовать все поля таблиц с префиксом таблиц?
|
|||
|---|---|---|---|
|
#18+
1) Если нужно связать таблицу саму с собой или просто использовать ее несколько раз в запросе все равно придется использовать алиасы. 2) Не знаю кто как, но я пишу в PL/SQL Developer, там есть Code Assistant, т.е. я пишу алиас точка и вижу список полей таблицы с этим алиасом, без этого мне нужно будет помнить все поля всех таблиц? Нет уж, увольте. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2012, 06:24 |
|
||
|
Насколько удобно именовать все поля таблиц с префиксом таблиц?
|
|||
|---|---|---|---|
|
#18+
sylexКто так часто делает? Я так часто делаю. softwarerТо есть вместо двухсимвольного префикса (t.), который мы можем использовать, предлагается двухсимвольный (t_) префикс, который мы не можем не использовать. Предположим, что первичный ключ у всех называется id, тогда для каждой (ну или почти каждой) таблицы в запросе нужно прописать алиас. softwarerно зато как только требуется использовать таблицу в запросе дважды - или просто использовать в запросе таблицы с одинаковым префиксом - приходится возвращаться к старой схеме. Истинно верно. Но насколько много запросов используют одну и ту же таблицу дважды? У меня - не более 5%. А еще при выборке для каждого поля "name", нужно делать свой алиас. Пусть есть 3 таблицы: машина, цвет, модель кузова. В каждой есть поле id - первичный ключ и name - отвечающее за название. Чтобы сделать простую выборку - нужно прописывать каждому полю name свой алиас. Код: sql 1. 2. 3. 4. 5. В общем, я не понимаю такой ненависти к префиксам полей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2012, 07:07 |
|
||
|
Насколько удобно именовать все поля таблиц с префиксом таблиц?
|
|||
|---|---|---|---|
|
#18+
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 - неприемлемо совсем. Я видел стандарты фирм где три первые символа в имени колонки - это префикс от имени таблицы. Причем те кто их создавал давно ушли, но теперь единообразие стиля в этом плане имеет значение: проектов много и запроосы в них читать проще. Например, часто встречающийся префикс - указывает на основную таблу в БД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2012, 08:31 |
|
||
|
Насколько удобно именовать все поля таблиц с префиксом таблиц?
|
|||
|---|---|---|---|
|
#18+
softwarersylexНасколько это удобней? Где-то на минус триста процентов. ну ка формулу рассчета - в студию :) softwarersylexКто так часто делает? Таких не встречал. надо же, поразительно, за такую большую практику! а я встречаю, и не один раз а префиксы для таблиц, я так понял, вы очень даже используете! Правильно? Это верный подход? В общем, как я понял, у каждого свое мнение, и редко кто от него отступится Каждый делает кому как удобней, я просто хотел узнать как делают другие ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2012, 08:49 |
|
||
|
Насколько удобно именовать все поля таблиц с префиксом таблиц?
|
|||
|---|---|---|---|
|
#18+
ChaosMP1) Если нужно связать таблицу саму с собой или просто использовать ее несколько раз в запросе все равно придется использовать алиасы. как уже заметили выше - таких запросов меньшинство, никаких проблем, возможность использовать алиасы у нас всегда остается... тут в обоих случаях они нужны ChaosMP2) Не знаю кто как, но я пишу в PL/SQL Developer, там есть Code Assistant, т.е. я пишу алиас точка и вижу список полей таблицы с этим алиасом, без этого мне нужно будет помнить все поля всех таблиц? Нет уж, увольте. если там есть Code Assistant, то достаточно помнить префикс таблицы - и также использовать эту возможность по полной! Если вы знаете о какой таблице идет речь - то и префикс помнить/знать - никаких проблем! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2012, 08:54 |
|
||
|
Насколько удобно именовать все поля таблиц с префиксом таблиц?
|
|||
|---|---|---|---|
|
#18+
vadiminfoПрефиксы, возможно, могут иметь пользу в каком-то упрощении понимания смысла запросов, когда есть несколько основных (наиболее часто встречающихся в запросах) таблиц, для тех кто часто сталкивается с запросами к этой БД, када пишет запросы много разного народа с разными стилями написания. Тогда, видимо, префиксы запомнились и не надо искать FROM, чтобы понять какой таблице принадлежат имена столбцов. Возможно, у суррогатов этот префикс сокращение имени таблы и потому суррогаты запоминаются по любому, и они быстрей попадаются на глаза чем FROM. спасибо за ответ) я тоже так думаю) vadiminfoС другой стороны, для вновь пришедших в проекты со стороны это может вызвать излишнее усложнение: нужно есче понять что это префикс, а не смысловое сокращение свойства сущности про которое данный столбец. Ведь это искажение естественноного присхождения наименования свойства. я думаю понять не проблема, когда мы посмотрим на структуру таблицы и наглядно видим, что КАЖДОЕ ПОЛЕ ИМЕЕТ ПРЕФИКС, не сложно догадаться - что похоже на имя таблицы) еще посмотрим пару таблиц - и ясность в нашей голове - как ясный день и чистое небо :) vadiminfoКроме того, когда много таблиц с подобными именами можект возникнуть трудностти с придумыванием префиксов и соотвественно их пониманием потом. Например, в Вашей схеме было бы еще таблица item_class. Ее префикс судя по всему дролжен быть как и у items_categorys: itc, другой буит сбивать с толку: откуда такое наименование - излишнии для прользы дела мыстли. Однако, itc - неприемлемо совсем. да, но я думаю в общем в проектах - таких таблиц будет мало... как правило при проектировании БД - мы создаем уже все основные таблицы проекта, и можем видеть - где что и как, возможно задать другое имя таблицы - для какой-либо, чтобы не было путанницы в приведенном примере, я бы использовал: items_categorys - itcat item_class - itclass or itc ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2012, 09:03 |
|
||
|
Насколько удобно именовать все поля таблиц с префиксом таблиц?
|
|||
|---|---|---|---|
|
#18+
sylexя думаю понять не проблема, когда мы посмотрим на структуру таблицы и наглядно видим, что КАЖДОЕ ПОЛЕ ИМЕЕТ ПРЕФИКС, не сложно догадаться - что похоже на имя таблицы) еще посмотрим пару таблиц - и ясность в нашей голове - как ясный день и чистое небо :) Я имел в виду не то что догадаться сложно, а именно сложнее чем без этого. В частности, надо просматривать для этого структуру, Вы говорите. Но если к примеру, Вам поручили просто чисто добиться производительности отчета в котором несколько запросов в другом проекте. То просматривание структур всех таблиц, возможно, - дополнительное усилие. Это не критично, но все же. sylex да, но я думаю в общем в проектах - таких таблиц будет мало... как правило при проектировании БД - мы создаем уже все основные таблицы проекта, и можем видеть - где что и как, возможно задать другое имя таблицы - для какой-либо, чтобы не было путанницы Все же их малость - это предположение. Пусть не часто но бывает. sylexв приведенном примере, я бы использовал: items_categorys - itcat item_class - itclass or itc Но это уже почти имя всей таблицы. И тут может быть что-то связанное с тем, что имена в целом длинноваты могуи быть. Хотя с другой стороны, например, одинаковые имена колонок у разных таблов, я думау, чрезмерно плохая идея. И потому стандарт на префиксы может обезопасить от этого, када БД проектируют (допроектируют - добавляют таблицы) чиста проггеры драйверов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2012, 09:25 |
|
||
|
Насколько удобно именовать все поля таблиц с префиксом таблиц?
|
|||
|---|---|---|---|
|
#18+
sylexНасколько это удобней? Кто так часто делает?Встречал, так делают совсем начинающие программисты. sylexв общем, плюсы префиксов: 1. не требуется писать алиасов для таблиц (как правило запросы короче) 2. удобно при больших запросах - четко видишь, от какой таблицы идет поле, даже не видя таблицу 3. меньше путанницы - при обычном подходе: в разных запросах, когда много таблиц - можешь дать разные алиасы для одних и тех же таблиц - если же есть префиксы - все стандартизированно на всю БД раз и навсегда 4. меньше путанницы при выборке из присоединенных таблиц - когда много одних и тех же name, id - приходится давать алиасы полям при выборке, при использовании префиксов - ничего этого не нужно, никогда не путаешься1. С алиасами таблиц запросы получатся короче (т.к. обычная длинна алиаса короче обычной длинны префикса). Так что лучьше приоблести привычку всегда писать алиасы таблиц. 2,4. Вот с алиасами таблиц всё и будет видно. А вот с префмксами не будет, потому что кроме запоминания названий таблиц (что просто, т.к. они осмысленные) нужно будет запоминать код таблицы (префикс). 3. Да, можно дать разные алиасы для одних и тех же таблиц, но достаточно одного взгляда, что бы стало понятно. Система префиксов имеет главный недостаток - в небольшой системке в БД будет сотня таблиц, с префиксами всё не будет так уж ясно. Префиксы будут не понятными кодами в одну букву, а именно абстрактым кодом, типа nge, nsx, grx, tls. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2012, 09:32 |
|
||
|
Насколько удобно именовать все поля таблиц с префиксом таблиц?
|
|||
|---|---|---|---|
|
#18+
Лично я всегда пишу поля с префиксами. Для чего? А что бы можно было составить словарь предметной области по наименованиям полей таблиц и вьюх. 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. Но я также всегда использую алиасы таблиц. Это все-же надежнее. К тому же во многих редакторах запросов уже есть подсказки полей по набранному алиасу с точкой. Да и к тому же в "моей" системе наименований без алиасов никуда :) Ну естественно могут возникать коллизии - например идентификатор следующей новости - next_news_id итп... А главное - выбрать для себя какой-нибудь стандарт и придерживаться его. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2012, 09:39 |
|
||
|
Насколько удобно именовать все поля таблиц с префиксом таблиц?
|
|||
|---|---|---|---|
|
#18+
а сколько таблиц в префиксируемой базе? десяточек? а если пятьдесят? а если сотня? а в ОЕБС например.... счет на десятки тысяч идет - там префиксируются не поля таблиц, а сами таблицы и пакеты - 2-3 буквенным кодом предметной области. Уважаемый sylex, прошу считать мои слова не аргументом, а бессмысленным бредовым бормотанием старого сетевого тролля. Так всем будет проще. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2012, 09:56 |
|
||
|
Насколько удобно именовать все поля таблиц с префиксом таблиц?
|
|||
|---|---|---|---|
|
#18+
клозу юзинг никто не отменял если что - когда 2 таблы нужно объединить по одноименным полям. Удачи в проектировании! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2012, 09:58 |
|
||
|
Насколько удобно именовать все поля таблиц с префиксом таблиц?
|
|||
|---|---|---|---|
|
#18+
я никогда не использовал префиксы, если честно но вот сейчас на разработке - новый проект, и будет существенная реструктуризация его... и я думаю, о том, чтобы заложить правильный фундамент решил выяснить, насколько правильно будет - переписать структуру БД и часть проекта - на префиксы... Сейчас, если честно, окончательно запутался... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2012, 10:00 |
|
||
|
Насколько удобно именовать все поля таблиц с префиксом таблиц?
|
|||
|---|---|---|---|
|
#18+
alexeyvgСистема префиксов имеет главный недостаток - в небольшой системке в БД будет сотня таблиц, с префиксами всё не будет так уж ясно. Префиксы будут не понятными кодами в одну букву, а именно абстрактым кодом, типа nge, nsx, grx, tls. в одной БД - порядка 30 таблиц разных и сейчас я увидел эту мешанину непонятный префиксов действительно, имеет место наверное, глупая затея - переходить на префиксы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2012, 10:02 |
|
||
|
Насколько удобно именовать все поля таблиц с префиксом таблиц?
|
|||
|---|---|---|---|
|
#18+
On 07/29/2012 01:13 PM, sylex wrote: > и так во всех таблицах. Насколько это удобней? Кто так часто делает? Мы так делаем. Ну да, как бы иногда можно без алиасов обходится. > > Тем самым в запросах мы можем не использовать алиасы таблиц - вроде удобней) Да по барабану. Зато надо использовать префиксы полей. Которые нечитаемы и портят читаемость запроса. К тому же если таблица используется в запросе несколько раз, то без алиасов всё равно не обойтись. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2012, 10:34 |
|
||
|
Насколько удобно именовать все поля таблиц с префиксом таблиц?
|
|||
|---|---|---|---|
|
#18+
sylexно вот сейчас на разработке - новый проект, и будет существенная реструктуризация его... и я думаю, о том, чтобы заложить правильный фундаментПрислушайтесь к совету сделать префиксы таблиц - как бы код модуля. Конечно, это имеет смысл, если модель данных немаленькая - до сотни таблиц можно не заморачиваться. Некоторые в качестве такого префикса модуля используют схему - тоже неплохой вариант. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2012, 10:43 |
|
||
|
Насколько удобно именовать все поля таблиц с префиксом таблиц?
|
|||
|---|---|---|---|
|
#18+
denisofffПредположим, что первичный ключ у всех называется id, тогда для каждой (ну или почти каждой) таблицы в запросе нужно прописать алиас. Это предположение может быть ложно. Вне зависимости от этого "прописать алиас" в этом случае окажется никак не хуже "использовать префикс" - в "лучшем случае" два символа в одном случае и два в другом, зато в "худшем случае" алиас окажется даже не то что удобнее - просто его точно надо будет прописывать. Отдельно замечу, что практически все опытные sql-разработчики прописывают алиасы автоматом. Кое-кто не пишет их в случае запроса из одной таблицы, а многие используют и в этом случае. Инструменты разработки учитывают это, например список полей таблицы часто выбрасывается на точку после алиаса. denisofffИстинно верно. Но насколько много запросов используют одну и ту же таблицу дважды? У меня - не более 5%. В разных задачах по-разному. В целом и 5% "отступлений от правила" - безумно много, это разрушает автоматизм. Кроме того, для базы из 10 таблиц префиксы, наверное, не будут пересекаться, но уже в базе из 100 таблиц наверняка будет десяток таблиц, разделяющих наиболее популярную букву префикса. denisofffПусть есть 3 таблицы: машина, цвет, модель кузова. В каждой есть поле id - первичный ключ и name - отвечающее за название. Чтобы сделать простую выборку - нужно прописывать каждому полю name свой алиас. Ага :) А если учитывать, что машина - это CAR, цвет - это COLOR, а кузов - это CARCASS, при использовании префиксов C получится просто замечательный запрос denisofffВ общем, я не понимаю такой ненависти к префиксам полей. Она сродни "ненависти" к камешку в ботинке. Его просто выбрасывают. sylexну ка формулу рассчета - в студию :) Сто процентов неудобства - на постоянные "здесь играем, здесь не играем", сто процентов - на отваливающиеся инструменты разработчика, сто процентов - на сочетания в запросах "алиасов и префиксов вместе". Кажется, именно так я решил ночью. sylexнадо же, поразительно, за такую большую практику! а я встречаю, и не один раз Подобное тянется к подобному. Большинство.... странных практик я встречал, когда приходилось импортить данные из внешних источниках. В собственных разработках везде, где работал, было довольно прилично (с моей точки зрения), в другие места я просто не шёл. sylexа префиксы для таблиц, я так понял, вы очень даже используете! Правильно? Это верный подход? В случае, если предполагается достаточно большая база, состоящая из нескольких чётко выделенных модулей, я как правило использую префиксы, идентифицирующие модуль. Эти префиксы относятся к таблицам, пакетам, а также вспомогательным объектам - индексам, последовательностям итп. Чем больше таблиц, тем больше такие префиксы оправдывают "несколько лишних букв", особенно потому, что в "различных модулях" склонны появляться "одноимённые таблицы", скажем, "документы", и префиксы позволяют очевидно и чётко развести их. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2012, 11:32 |
|
||
|
Насколько удобно именовать все поля таблиц с префиксом таблиц?
|
|||
|---|---|---|---|
|
#18+
softwarer, большое спасибо за развернутый ответ! вот еще нашел минус префиксов: - что будет, если нужно будет переименовать табличку? ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2012, 12:29 |
|
||
|
Насколько удобно именовать все поля таблиц с префиксом таблиц?
|
|||
|---|---|---|---|
|
#18+
sylex, дать префикс - это причислать к какому-то классу. Поля таблицы уже причислены к классу - к самой таблице, а SQL с инструментами сегодня позволяют использовать их вместе практически везде, кроме алиаса поля в разделе проекции запроса (и то для некоторых субд это не проблема :). Поэтому полезнее ввести во внутренний стандарт не префиксы для всех полей таблицы, а: 1. стандарты для наименований суррогатных полей 2. стандарты для алиасов таблиц в запросах. 3. стандарты для префиксов алиасов полей в проекции запроса, если в проекте по тем или иным причинам не получается использовать для них что-то типа "car_items.name". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2012, 13:23 |
|
||
|
Насколько удобно именовать все поля таблиц с префиксом таблиц?
|
|||
|---|---|---|---|
|
#18+
softwarerВ случае, если предполагается достаточно большая база, состоящая из нескольких чётко выделенных модулей, я как правило использую префиксы, идентифицирующие модуль. Эти префиксы относятся к таблицам, пакетам, а также вспомогательным объектам - индексам, последовательностям итп. А почему префиксы, а не схемы? Аргументы-то в точности те же: "префикс_" vs "схема." Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2012, 13:46 |
|
||
|
Насколько удобно именовать все поля таблиц с префиксом таблиц?
|
|||
|---|---|---|---|
|
#18+
АнатоЛойsylex, дать префикс - это причислать к какому-то классу. Поля таблицы уже причислены к классу - к самой таблице, а SQL с инструментами сегодня позволяют использовать их вместе практически везде, кроме алиаса поля в разделе проекции запроса (и то для некоторых субд это не проблема :). Ну тада уж шла не о причислении к чему либо, а дополнительном обозначении ранее сделанного причисления причисления. Ну типа как дневной свет у авто в дополнение. И почему именно именно это полезнее тоже вроде не совсем ясно. АнатоЛойПоэтому полезнее ввести во внутренний стандарт не префиксы для всех полей таблицы, а: 1. стандарты для наименований суррогатных полей 2. стандарты для алиасов таблиц в запросах. 3. стандарты для префиксов алиасов полей в проекции запроса, если в проекте по тем или иным причинам не получается использовать для них что-то типа "car_items.name". Ить стандарты на именование элементов структур должно знать, меньше народу (проектировщики), по сравнению с теми кто пишет запросы. Например, в связи с авралом Вы привлекли для написания отчетов всех сотрудников фирмы, включая уборщиц. И они что будут учить стандарты? Им не до алиасов буит. У нас же идея, что чем проще извлечение инфы, тем луче, поскоку это главная цель ИС. Вполть до того - как бы ни спросил она тебя поняла, и дала ответ. Вот проетирование структур ради этого может быть обремено дополнительными затратами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2012, 13:52 |
|
||
|
Насколько удобно именовать все поля таблиц с префиксом таблиц?
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovА почему префиксы, а не схемы? Аргументы-то в точности те же: "префикс_" vs "схема." В моём случае префикс$. Знак подчёркивания используется в названиях таблиц и пакетов, а вот знак доллара - практически никогда, поэтому он удобен для выделения префикса. Потому, что схемы в большинстве случаев - слишком тяжёлое решение. Они практически требуют, чтобы приложение было единственным в экземпляре БД - в то время как приложение "в одной схеме" вполне можно устанавливать совместно с другими, в том числе в неизвестную заранее (определяемую при инсталляции) схему. Это, конечно, если мы говорим о продаваемой системе, а не о внутрифирменной разработке. Со схемами начинаются вопросы внутренней раздачи прав - чтобы хранимый код из одного модуля мог работать с хранимками или с данными из другого. Со схемами становится затруднительным накат патча в рамках одного соединения с БД - надо или выдавать чересчур сильные привилегии типа ALTER ANY TABLE, или постоянно переключаться между схемами (и ещё как-то держать пароль в скриптах, между прочим), или плодить дырки типа procedure EXECUTE_MY_DLL... В общем, в своих разработках я не доходил до такого количества таблиц, чтобы захотелось возиться со схемами. Также, само собой, сказанное относится к схемам в Oracle.. допускаю, что в каких-либо других СУБД это будет удобным решением. Сугубо на будущее, я надеюсь, что рано или поздно идеологи дойдут до понятия иерархической схемы (типа my.application.module), и тогда это станет удобным и удачным решением вместо префиксов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2012, 14:09 |
|
||
|
Насколько удобно именовать все поля таблиц с префиксом таблиц?
|
|||
|---|---|---|---|
|
#18+
softwarerВне зависимости от этого "прописать алиас" в этом случае окажется никак не хуже "использовать префикс" - в "лучшем случае" два символа в одном случае и два в другом, зато в "худшем случае" алиас окажется даже не то что удобнее - просто его точно надо будет прописывать. А почему два символа? Все алиасы определяются как a, b, c, d... z? Не шибко-то удобно и наглядно (или только мне так кажется). softwarerВ разных задачах по-разному. В целом и 5% "отступлений от правила" - безумно много, это разрушает автоматизм. Кроме того, для базы из 10 таблиц префиксы, наверное, не будут пересекаться, но уже в базе из 100 таблиц наверняка будет десяток таблиц, разделяющих наиболее популярную букву префикса. Самая большая база на моем попечении имеет 160 таблиц. Есть пара префиксов в 4 символа, пара десятков в 3 и все остальные в 2. Тем более, что совсем необязательно иметь уникальный префикс для каждой таблицы. Например, ST - это может быть и Street и SystemType, как правило, не используемые вместе. softwarerАга :) А если учитывать, что машина - это CAR, цвет - это COLOR, а кузов - это CARCASS, при использовании префиксов C получится просто замечательный запрос А кто сказал, что на префикс надо пускать один символ? :-) Вообще, почитав обсуждения, я понял, что большинство участников работает с очень большими и масштабными проектами на многие сотни таблиц. Тут я согласен, что может начаться путаница с префиксами. В любом случае, как мне кажется, главное, чтобы был стандарт именования между разработчиками и однозначное понимание всех именований. Пару лет назад мне пришлось разбираться в старой базе данных в каком-то формате, который не позволял длину поля больше 10 символов. Там приходилось понимать, что куда предназначено, почти что по данным в таблице. Так что чуть более длинное название поля, я считаю, не является страшным, если оно помогает уловить суть. Кажется, у Стива Макконела было написано "не жертвуйте понятностью кода ради его производительности". Лучше написать несколько лишних символов префикса, чем потерять в понимании. Если понимание легко приходит и через алиасы - то пусть будет так. Видимо я еще не созрел до такого уровня :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2012, 14:14 |
|
||
|
Насколько удобно именовать все поля таблиц с префиксом таблиц?
|
|||
|---|---|---|---|
|
#18+
denisofffВообще, почитав обсуждения, я понял, что большинство участников работает с очень большими и масштабными проектами на многие сотни таблиц. Тут я согласен, что может начаться путаница с префиксами. В любом случае, как мне кажется, главное, чтобы был стандарт именования между разработчиками и однозначное понимание всех именований. Пару лет назад мне пришлось разбираться в старой базе данных в каком-то формате, который не позволял длину поля больше 10 символов. Там приходилось понимать, что куда предназначено, почти что по данным в таблице. Так что чуть более длинное название поля, я считаю, не является страшным, если оно помогает уловить суть. Кажется, у Стива Макконела было написано "не жертвуйте понятностью кода ради его производительности". Лучше написать несколько лишних символов префикса, чем потерять в понимании. Если понимание легко приходит и через алиасы - то пусть будет так. Видимо я еще не созрел до такого уровня :) Наоборот, чем больше таблиц - тем длинее "префиксы". У меня правило именования таблиц: префикс (DIC, TAB, TCR, ...) + корень. Полей: префикс (i, n, s, db, mn, dt) + корень из имени таблицы + уточняющий суффикс (ID, Count, Amount, Quantity, From, To, Code, ...) Фантазии в придумывании имен не остается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2012, 14:21 |
|
||
|
Насколько удобно именовать все поля таблиц с префиксом таблиц?
|
|||
|---|---|---|---|
|
#18+
Я работал с большой системой, использующей префиксы. Своеобразно, но особых ужасов и неудобств не заметил - к единообразию привыкнуть легко. Так что все аргументы "удобно-неудобно", "путанее/распутанее" - дело привычки. Технически, преимущество одно: уникальность имени атрибута в системе. То есть, из какого бы запроса не приехал атрибут, на клиенте всегда однозначно ясно, что это и откуда. Нужно ли это, и важно ли это в большинстве обычных систем? Пожалуй, не особенно. Однако в той системе это было важно и нужно, поскольку на имя атрибута клиентская библиотека сразу автоматически навешивала приятную функциональность из словаря метаданных. То есть, там применялись элементы "програмирования через метаданные", и это было удобно. Кстати, большинство SQL-запросов там тоже генерились автоматически, так что вопрос (не)удобства их составления отпадал сам собой. Теперь о суровых мерах, которые пришлось принять, чтобы эту идею довести до работоспособного логического завершения: 1. Каждой таблице должен соответствовать префикс. Минимальной длины (3-4) символа, но максимальной мнемоничной понятности. Уникальный в пределах БД. (Кстати, эта идея - сопоставить длинному, понятному имени таблицы "технический", сокращенный префикс, и использовать его в именовании связанных объектов, не нова, и предлагается, например, здесь: Oracle Naming Conventions . Правда, там его используют в именах ключей, а для полей не рекомендуют. Но сама идея, и принцип составления заслуживают внимания). Так вот, в именах полей используется именно этот префикс. Как вариант, сами таблицы можно поназывать разумно-покороче, и использовать их имена как префиксы. Понятно, это для небольших БД. 2. Формализуем названия полей для внешних ключей. Если ссылка между таблицами ровно одна - название полей с обеих сторон (1 и N) ключа одинаково. Если ссылок больше - к полям на стороне "N" добавляются смысловые суффиксы, например "_X", "_Y". 3. Формализуем именование алиасов, если таблица участвует в запросе более одного раза. Суть в том, что каждый такой "раз" получает уникальный смысловой суффикс (он же алиас таблицы в запросе, например "_PARENT", "_CHILD"), и все поля из этого экземпляра таблицы получают в своих алиасах в добавку к своим именам этот суффикс. Мое мнение: можно жить и с этим, и без этого. Включение префиксов таблиц в имена полей позволяет двинуть систему в сторону "пусть безобразно, но единообразно". Если это вызвано какими-то дополнительными требованиями, например, использованием метаданных, или автоматической генерацией SQL, - то это может быть оправдано технически. Если нет - то может порадовать разве что любителей "военного" порядка в БД, в ущерб "книжной" наглядности. Об авторитетных мнениях. Скандально известный Джо Селко в обсуждении этого вопроса сначала ссылается на некий ISO-11179 который требует уникальности имени скалярного атрибута в пределах всего словаря (то есть как-бы за префиксы). Затем разбивает эту идею в пух и прах в главе "Избегайте описательных префиксов". Впрочем, разбивает скорее эмоциями, чем доводами. А вот система приверженца префиксов: link , тоже достаточно стройная. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2012, 14:21 |
|
||
|
Насколько удобно именовать все поля таблиц с префиксом таблиц?
|
|||
|---|---|---|---|
|
#18+
denisofffА почему два символа? А кто сказал, что на префикс надо пускать один символ? :-) Мне казалось, что это мелькало у топикстартера. Сейчас пересмотрел - на нашёл. Это, конечно, срезает мои соответствующие пассажи. denisofffВообще, почитав обсуждения, я понял, что большинство участников работает с очень большими и масштабными проектами на многие сотни таблиц. Большие и масштабные - вопрос дискуссионный, но "сотни таблиц" уже давно имхо норма, если только не используется тотальное EAV или что-то подобное. Если вспомнить... кроме сугубо проектов "для себя" у меня за всю жизнь было кажется два проекта с менее чем сотней таблиц. denisofffВ любом случае, как мне кажется, главное, чтобы был стандарт именования между разработчиками и однозначное понимание всех именований. Безусловно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2012, 14:44 |
|
||
|
Насколько удобно именовать все поля таблиц с префиксом таблиц?
|
|||
|---|---|---|---|
|
#18+
Cane Cat Fisher(Кстати, эта идея - сопоставить длинному, понятному имени таблицы "технический", сокращенный префикс, и использовать его в именовании связанных объектов, не нова, и предлагается, например, здесь: Oracle Naming Conventions . Правда, там его используют в именах ключей, а для полей не рекомендуют. Но сама идея, и принцип составления заслуживают внимания). Боюсь, эта идея растёт на 99% из устаревшего ораклового ограничения идентификатора в 30 байт. Оно не составляет заметной проблемы, когда мы придумываем названия для полей и таблиц, но иногда неприятно стреляет, когда генерируем имена для вторичных объектов (скажем, FK_TABLE1_TABLE2 уже запросто может нарушить это ограничение). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2012, 14:48 |
|
||
|
Насколько удобно именовать все поля таблиц с префиксом таблиц?
|
|||
|---|---|---|---|
|
#18+
softwarerБоюсь, эта идея растёт на 99% из устаревшего ораклового ограничения идентификатора в 30 байт. Оно не составляет заметной проблемы, когда мы придумываем названия для полей и таблиц, но иногда неприятно стреляет, когда генерируем имена для вторичных объектов (скажем, FK_TABLE1_TABLE2 уже запросто может нарушить это ограничение). Возможно. Но, возвращаясь к Оракловому примеру, (таблицы у них называются APPLICATION_FUNCTIONS и APPLICATON_FUNCTION_ROLES), если даже воображаемое имя ключа "APPLICATION_FUNCTIONS_APPLICATON_FUNCTION_ROLES_FK" и будет допустимо по длине, то многие предпочтут все же скромный APFU_APPL_FK. Тем более - его, скорее всего, ни читать, ни набирать часто не придется, а лишь иногда поискать "ой, что это нарушилось?". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2012, 14:59 |
|
||
|
Насколько удобно именовать все поля таблиц с префиксом таблиц?
|
|||
|---|---|---|---|
|
#18+
Cane Cat Fisherто многие предпочтут все же скромный APFU_APPL_FK. Тем более - его, скорее всего, ни читать, ни набирать часто не придется, а лишь иногда поискать "ой, что это нарушилось?". Именно поэтому - "не думаю, что многие предпочтут". Прочитать прямо в имени ограничения "что нарушилось" гораздо удобнее, нежели набирать что-нибудь типа select table_name, r_table_name from user_constraints where constraint_name = 'APFU_APPL_FK'. А в целом - единообразие таких идентификаторов гораздо важнее (удобнее) их длины, и как только техника позволит, уверен, резко увеличится количество команд с жёсткими стандартами кодирования в этом месте, причём стандартами, поддержанными скриптами и прочими местными инструментами генерации структуры, реакции на ошибки и прочей работы с БД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2012, 15:12 |
|
||
|
Насколько удобно именовать все поля таблиц с префиксом таблиц?
|
|||
|---|---|---|---|
|
#18+
denisofff Пару лет назад мне пришлось разбираться в старой базе данных в каком-то формате, который не позволял длину поля больше 10 символов. Там приходилось понимать, что куда предназначено, почти что по данным в таблице. Так что чуть более длинное название поля, я считаю, не является страшным, если оно помогает уловить суть. Суть помогают уловить содержательные (изменяемые) метаданные. А Вы говорите о (неизменяемых) технических метаданных, то есть об идентификаторах полей и таблиц. Они как раз могут быть какими угодно, хоть просто цифрами:) Ваша беда в том, что ни "старая база", о которой Вы рассказали, ни "абсолютно новая" не содержат содержательных метаданных. Они находятся какой-то другой системе или даже в приложении. Вся эта тема не имеет большого смысла, так как относится к каким-то несовременным технологиям БД, видимо, "реляционным":) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2012, 15:16 |
|
||
|
Насколько удобно именовать все поля таблиц с префиксом таблиц?
|
|||
|---|---|---|---|
|
#18+
sylexнаверное, глупая затея - переходить на префиксы Абсолютно. Вы еще забыли про view - а с ними что делать ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2012, 16:59 |
|
||
|
Насколько удобно именовать все поля таблиц с префиксом таблиц?
|
|||
|---|---|---|---|
|
#18+
vadiminfoАнатоЛойsylex, дать префикс - это причислать к какому-то классу. Поля таблицы уже причислены к классу - к самой таблице, а SQL с инструментами сегодня позволяют использовать их вместе практически везде, кроме алиаса поля в разделе проекции запроса (и то для некоторых субд это не проблема :). Ну тада уж шла не о причислении к чему либо, а дополнительном обозначении ранее сделанного причисления. Ну типа как дневной свет у авто в дополнение. Аналогии не понял. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2012, 20:27 |
|
||
|
Насколько удобно именовать все поля таблиц с префиксом таблиц?
|
|||
|---|---|---|---|
|
#18+
vadiminfoИть стандарты на именование элементов структур должно знать, меньше народу (проектировщики), по сравнению с теми кто пишет запросы. Например, в связи с авралом Вы привлекли для написания отчетов всех сотрудников фирмы, включая уборщиц. И они что будут учить стандарты? Им не до алиасов буит. А уборшицам в вашем случае с префиксами полей не нужно учить стандарты префиксов полей? Если нет - какой же им толк от этих префиксов? А если да, то "И они что будут учить стандарты"?!!!. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2012, 20:31 |
|
||
|
Насколько удобно именовать все поля таблиц с префиксом таблиц?
|
|||
|---|---|---|---|
|
#18+
vadiminfoУ нас же идея, что чем проще извлечение инфы, тем луче, поскоку это главная цель ИС. Вполть до того - как бы ни спросил она тебя поняла, и дала ответ. Думаю суть этой формулировки испарится вместе с парами алкоголя из любой головы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2012, 20:33 |
|
||
|
Насколько удобно именовать все поля таблиц с префиксом таблиц?
|
|||
|---|---|---|---|
|
#18+
_модsylexнаверное, глупая затея - переходить на префиксы Абсолютно. Вы еще забыли про view - а с ними что делать ? Если продвинуть идею дальше, то в при разработке на любом ОО ЯП для каждого члена класса нужно давать префикс - имя класса... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2012, 20:44 |
|
||
|
Насколько удобно именовать все поля таблиц с префиксом таблиц?
|
|||
|---|---|---|---|
|
#18+
vadiminfoИ почему именно именно это полезнее тоже вроде не совсем ясно. Уточняю. На моей практике аргументированно во внутренний стандарт вносились не префиксы для всех полей таблицы, а: 1. стандарты для наименований суррогатных полей одинаковая функциональная нагрузка таких полей у разных таблиц наиболее часто порождает желание добавить в их наименование имя таблицы или его производную. Как следствие - наиболее часто возникают разные принципы именования. Чтобы эти принципы контролировать - и нужен стандарт. Именно для суррогатные полей можно договориться использовать префиксы. Но в 3 больших проектах я не видел использование префиксов -максимум, сокращение имени чтобы втиснуться в ограничения БД по длине наименования. И то - волевым решением. Не было аргументов, чем теоретически и практически "car.id" хуже, чем "car.car_id" :) 2. стандарты для алиасов таблиц в запросах. а) практически всё равно возникнут запросы с использованием одной и той же таблицы несколько раз в одном запросе. б) я же предлагаю использовать алиасы таблиц вместо префиксов полей. Логично, что вместо стандарта префиксов понадобится стандарт алиасов. В чём вопрос?! 3. стандарты для префиксов алиасов полей в проекции запроса, если в проекте по тем или иным причинам не получается использовать для них что-то типа "car_items.name". Аналогично, п.2. я же предлагаю использовать алиасы таблиц вместо префиксов полей. Логично, что вместо стандарта префиксов понадобится стандарт алиасов. В чём вопрос?! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2012, 20:44 |
|
||
|
Насколько удобно именовать все поля таблиц с префиксом таблиц?
|
|||
|---|---|---|---|
|
#18+
АнатоЛойАналогии не понял. ну это было предположение тезис "дать префикс - это причислать к какому-то классу.", возможно, не очень удачно подходит, поскоку у ТС явно речь шла тока о дополнительных обозначениях ранее "причисленного к классу". Никакой структуробразуюшей роли в РМД этим префиксам не приписывалось. Просто именование колонок, в отличии от "причисления к самой таблице": если Вы ей припишие префикс от другой талицы, или даже планеты, она останется том же классе "самой таблице", поскоку у этой РМД просто нет никаких других "классов", кроме таблиц. Ну уж такая эта наиболее успешная последние 30 лет МД. АнатоЛойА уборшицам в вашем случае с префиксами полей не нужно учить стандарты префиксов полей? Если нет - какой же им толк от этих префиксов? В том то и дело, уборщицам, скорее всего, не нужны стандрты никакие. Тем более если запросы пишут юзера у заказчика (на то и SQL, чтобы кажный мог написать). А толк от этих префиксов может быть, например, но тем кто читает иногда запросы, написанные другими. Но их, скорее всего меньше, чем писателкй, квалификация выше. Потому сопоставление пользы от стандартов на алиасы в запросах стандартам на образование имен структуры, возможно, нуждается в дополнительных аргументах кроме "дать префикс - это причислать к какому-то классу.", АнатоЛойДумаю суть этой формулировки испарится вместе с парами алкоголя из любой головы. . Ну может не из любой, а только из тех, что думают, что целью создания БД является - занять персонал набором данных, чтобы не сидели без дела на работе. Буржуа придумал SQL, чтобы легче и быстрей инфу было извлеч, как моно большему народу из БД. Но тут мы пришли: нет есче, плиз, учите наши доморощеннные стандарты, прежде чем инфу извлекать. А как Вы хотели? Просто SQL написать каждый дурак может (спасибо Кодду). Нужна инфа, написал по быстрому запрос и забыл? Мы не для того БД лабали. Для этого тока головы с алколем могут додуматься.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2012, 23:07 |
|
||
|
Насколько удобно именовать все поля таблиц с префиксом таблиц?
|
|||
|---|---|---|---|
|
#18+
vadiminfo, за последние 30 лет что не тема - выходит к семантике в бд с че бы это? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2012, 23:22 |
|
||
|
Насколько удобно именовать все поля таблиц с префиксом таблиц?
|
|||
|---|---|---|---|
|
#18+
vadiminfoможет (спасибо Кодду). Нужна инфа, написал по быстрому запрос и забыл? Мы не для того БД лабали. Для этого тока головы с алколем могут додуматься.. select 'ishak dolbaniy' as 'kozel neuch' from dbo.doctoraBlinNauk ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2012, 23:25 |
|
||
|
Насколько удобно именовать все поля таблиц с префиксом таблиц?
|
|||
|---|---|---|---|
|
#18+
ViPRosза последние 30 лет что не тема - выходит к семантике в бд с че бы это? 30 лет уже длится эпоха РМД. Потому БД ассоциируется в основном тока с РМД. Ну, некоторые семантиченские недостаки у РМД есть (не принципальные). Тока такой ответ на Ваш вопрос приходит мне на ум. ViPRos select 'ishak dolbaniy' as 'kozel neuch' from dbo.doctoraBlinNauk ? Ну вот видите, даже на языке деклассированного элемента можно получить инфу. А иму предложат доморещенный стандарты местного значения. Он то стандартов SQL, может не листал. А ить SQL запросы есче могут генрериться на автомате. Например, из QBE. И опять туда руками свои домашние стандарты вставлять? Чет-то мене эта идея - доморещенные стандарты на SQL все еще кажется перебором. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2012, 09:10 |
|
||
|
Насколько удобно именовать все поля таблиц с префиксом таблиц?
|
|||
|---|---|---|---|
|
#18+
_модsylexнаверное, глупая затея - переходить на префиксы Абсолютно. Вы еще забыли про view - а с ними что делать ? а что с ними нужно делать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2012, 09:11 |
|
||
|
Насколько удобно именовать все поля таблиц с префиксом таблиц?
|
|||
|---|---|---|---|
|
#18+
АнатоЛойЛогично, что вместо стандарта префиксов понадобится стандарт алиасов. В чём вопрос?! в том, что стандарт алиасов - тяжелей "поддерживать" (помнить, или как там) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2012, 09:13 |
|
||
|
Насколько удобно именовать все поля таблиц с префиксом таблиц?
|
|||
|---|---|---|---|
|
#18+
vadiminfoпоскоку у ТС явно речь шла тока о дополнительных обозначениях ранее "причисленного к классу". Никакой структуробразуюшей роли в РМД этим префиксам не приписывалось. подтверждаю ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2012, 09:15 |
|
||
|
Насколько удобно именовать все поля таблиц с префиксом таблиц?
|
|||
|---|---|---|---|
|
#18+
sylexа что с ними нужно делать? То же , что и с таблицами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2012, 09:41 |
|
||
|
Насколько удобно именовать все поля таблиц с префиксом таблиц?
|
|||
|---|---|---|---|
|
#18+
_модТо же , что и с таблицами. Так они сохраннные запросы, то и с запросами вообще надо делать то же что и с таблицами? _мод, это был приказ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2012, 10:01 |
|
||
|
Насколько удобно именовать все поля таблиц с префиксом таблиц?
|
|||
|---|---|---|---|
|
#18+
опечатка: следует читать сохраненные запросы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2012, 10:02 |
|
||
|
Насколько удобно именовать все поля таблиц с префиксом таблиц?
|
|||
|---|---|---|---|
|
#18+
vadiminfoТак они сохраннные запросы Нет, виртуальные таблицы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2012, 10:26 |
|
||
|
Насколько удобно именовать все поля таблиц с префиксом таблиц?
|
|||
|---|---|---|---|
|
#18+
_мод, А просто таблицы - материальные таблицы? А просто запросы какие таблицы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2012, 10:30 |
|
||
|
Насколько удобно именовать все поля таблиц с префиксом таблиц?
|
|||
|---|---|---|---|
|
#18+
vadiminfoА просто запросы какие таблицы? А просто запросы - это временные таблицы. Короче, к ним ко всем надо применять префикс или не применять вообще. Теперь понятно ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2012, 11:38 |
|
||
|
Насколько удобно именовать все поля таблиц с префиксом таблиц?
|
|||
|---|---|---|---|
|
#18+
_модА просто запросы - это временные таблицы. Временные? А в Оракле есть другое понятие временных таблиц. Не знау теперь кого и слушать Вас или Оракла. _модКороче, к ним ко всем надо применять префикс или не применять вообще. Теперь понятно ? Нет не понятно с какого перепугу надо ко всем. Это приказ Путина или кого? Или закон госдума приняла во втором чтении? Может еще к таблицам в Ворде надо применять? Есче в Екселе таблы есть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2012, 11:54 |
|
||
|
Насколько удобно именовать все поля таблиц с префиксом таблиц?
|
|||
|---|---|---|---|
|
#18+
sylexChaosMP2) Не знаю кто как, но я пишу в PL/SQL Developer, там есть Code Assistant, т.е. я пишу алиас точка и вижу список полей таблицы с этим алиасом, без этого мне нужно будет помнить все поля всех таблиц? Нет уж, увольте. если там есть Code Assistant, то достаточно помнить префикс таблицы - и также использовать эту возможность по полной! Если вы знаете о какой таблице идет речь - то и префикс помнить/знать - никаких проблем! "Помнить префикс таблицы" - это не "учить"? Предлагаю ещё вариант - приписывать не сокращение от имени таблицы к имени поля, а сразу всё имя таблицы. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 1) всё понятно; 2) пишем не мы, а Code Completion; 3) экономить 200 байт на запросе - смешно; 4) понимается легко - не нужно учить/помнить/расшифровывать префиксы в имена таблиц; 5) читается быстро - и не надо говорить про "больше букв" - зашифрованные префиксы всё равно "разворачиваешь в голове", а на осмысление запроса времени всё равно уходит на порядки больше, чем на его чтение; 6) ручной контроль уникальности имён практически отпадает; 7) СУБД, имеющие ограничения для имён меньше 60 символов в топку; 8) увеличение затрат на парсинг запросов компьютером в наш век - смешно. Аргументы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2012, 11:54 |
|
||
|
Насколько удобно именовать все поля таблиц с префиксом таблиц?
|
|||
|---|---|---|---|
|
#18+
Даже вот так, чтобы совсем уж правильно было: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2012, 11:58 |
|
||
|
Насколько удобно именовать все поля таблиц с префиксом таблиц?
|
|||
|---|---|---|---|
|
#18+
И вдогонку... Разнесите на разные кучки: 1) процесс написания запроса 2) результат - сохранённый запрос 3) процесс чтения запроса Префиксы дают положительный эффект только в процессе написания запроса - ускоряют ввод но только "продвинутым" запросописателям. Тогда идеальная картинка: не одинаковые префиксы для всех пользователей, а функция редактора запроса по сочетанию букв вставлять название таблицы (макрос в FARе, автомзамена в Word и т.д.). Хотите, расшаривайте настройки по автозамене на рабочую группу, а хотите - у каждого своё расшифровка для сокращения "it", всё равно в запросе будет полное имя таблицы. И вот тут-то мы поймём, что можно жить и без префиксов в именах полей - достаточно везде использовать полные имена таблиц, простые имена полей без всяких префиксов и наименований таблиц, но везде использовать идетификацию поля с указанием таблицы . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2012, 12:09 |
|
||
|
Насколько удобно именовать все поля таблиц с префиксом таблиц?
|
|||
|---|---|---|---|
|
#18+
Красотища: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. В соединение с 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" Только вот кому оно надо?! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2012, 12:18 |
|
||
|
Насколько удобно именовать все поля таблиц с префиксом таблиц?
|
|||
|---|---|---|---|
|
#18+
АнатоЛойИ вот тут-то мы поймём, что можно жить и без префиксов в именах полей -... Да и раньше понимали, что можно: в РМД нет такой идеи, что без них нельзя. Скорее они даже выглядят как исажение МД. Но, к примеру, допустим Вы не хотите, чтобы в БД появились колонки с одинаковыми именами для разных атрбутов. Например, NAME. Но знаете, что БД допроектируют разные люди на протяжении ее ЖЦ. Ну стандарты на префексы могут помоч как-то. Не обязательно, конечно. Но все же. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2012, 12:20 |
|
||
|
Насколько удобно именовать все поля таблиц с префиксом таблиц?
|
|||
|---|---|---|---|
|
#18+
vadiminfoНо, к примеру, допустим Вы не хотите, чтобы в БД появились колонки с одинаковыми именами для разных атрбутов. Давайте аргументированно (пусть не идеально, ну хотя бы из практики) - зачем? Это похоже на мечту : вот бы у людей ФИО был: 1) уникальным, 2) выдаваемым при рождении, 3) никогда не менялся... :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2012, 12:30 |
|
||
|
Насколько удобно именовать все поля таблиц с префиксом таблиц?
|
|||
|---|---|---|---|
|
#18+
АнатоЛойДавайте аргументированно (пусть не идеально, ну хотя бы из практики) - зачем?: Ну, к примеру, РМД допускает проектирование из одной универсальной таблице ко многим таблицам, а в одной таблице одинаковых имен быть не может. Теория РБД рассматривает ФЗ между атрибутами, а как отличить кто от кого завист если имена одинаковые? А ить есть алгоритмы которые пытаются их искать автоматически. Структура БД на то и структура, чтобы быть относительно статичной частью системы: одинаковые имена потенциал для ее модификации. Так или иначе я не сомневаюсь, что проектировщик имет право на желание иметь в своей схеме уникальные атрибуты. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2012, 12:52 |
|
||
|
Насколько удобно именовать все поля таблиц с префиксом таблиц?
|
|||
|---|---|---|---|
|
#18+
vadiminfoНет не понятно с какого перепугу надо ко всем. Плохо, что не понятно :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2012, 14:02 |
|
||
|
Насколько удобно именовать все поля таблиц с префиксом таблиц?
|
|||
|---|---|---|---|
|
#18+
_модПлохо, что не понятно :) Надеюсь, что не очень плохо в данном случае. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2012, 14:09 |
|
||
|
Насколько удобно именовать все поля таблиц с префиксом таблиц?
|
|||
|---|---|---|---|
|
#18+
vadiminfoНо, к примеру, допустим Вы не хотите, чтобы в БД появились колонки с одинаковыми именами для разных атрбутов. Но знаете, что БД допроектируют разные люди на протяжении ее ЖЦ. Ну стандарты на префексы могут помоч как-то. Не обязательно, конечно. Но все же. Если допустим мы сильно не хотим, "чтобы в БД появились колонки с одинаковыми именами для разных атрибутов", то чтобы помогло не "как-то", а ощутимо, нужно: 1. Требования уникальности полей в рамках БД - в "стандарт" (по возможности с аргументацией). 2. Правила/процедуры/инструменты формирования имён с обеспечением уникальных значений - в "стандарт". 3. Правила/процедуры/инструменты использования имён - в "стандарт". 4. Разработка правил/процедур/инструментов контроля уникальности. 5. Разработка правил/процедур/инструментов контроля следования стандарту. 6. Доведение стандарта до сведения проектировщиков таблиц, писателей/читателей запросов и прочих уборщиц. И тут уж к каждом конкретном случае: а какой "объём" кода проекта, а сколько у нас человек в проекте вынуждены пользоваться стандартом, а как долго будет жить ПО (оптимистичненько), а какой это выигрыш в результате даст (в том числе моральное удовлетворение участников :) )... И во всей этой кучке задач вариант с префиксами-кодами полей может оказаться ненужным усложнением. Итого, ТС, для проекта в десяток-три таблиц вариант с префиксами-кодами полей вполне удобный - если не думаете сильно вырасти в ближайшей перспективе :). А если вдруг наметите расти, рефакторинг Вам в руки перед ростом :). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2012, 16:12 |
|
||
|
Насколько удобно именовать все поля таблиц с префиксом таблиц?
|
|||
|---|---|---|---|
|
#18+
АнатоЛойИтого, ТС, для проекта в десяток-три таблиц вариант с префиксами-кодами полей вполне удобный - если не думаете сильно вырасти в ближайшей перспективе :). А если вдруг наметите расти, рефакторинг Вам в руки перед ростом :). хороший вывод, спасибо :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2012, 17:39 |
|
||
|
|

start [/forum/topic.php?all=1&fid=32&tid=1541598]: |
0ms |
get settings: |
7ms |
get forum list: |
23ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
152ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
125ms |
get tp. blocked users: |
2ms |
| others: | 216ms |
| total: | 546ms |

| 0 / 0 |
