Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Унифицированные имена таблиц, полей, пакетов и функций.  (Прочитано 23242 раз)
0 Пользователей и 8 Гостей смотрят эту тему.
Антон (LogRus)
Глобальный модератор

ru
Offline Offline
Пол: Мужской
Внимание! Люблю сахар в кубиках!


WWW
« : 25-08-2006 05:55 » 

Добрый день!

Интересует меня такой вопрос, кто-нибуть применяет какой-то стандарт/документ/инструкцию, для задания имён таблиц, полей и т.д.

Например, пакеты всегда называть P_%, функции F_%, всегда присать имена таблиц полей и прочего в upper_case не завимо от того, где используется имя(код, документаци, почта)

вопрос собственно к чему, что-то стал замечать, что как-то очень странно люди называют таблицы, поля и прочее в небольших(может они и большие) проектах, если верить форуму.
« Последнее редактирование: 25-08-2006 06:00 от LogRus » Записан

Странно всё это....
Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #1 : 25-08-2006 07:06 » 

Цитата: LogRus
вопрос собственно к чему, что-то стал замечать, что как-то очень странно люди называют таблицы, поля и прочее в небольших(может они и большие) проектах, если верить форуму.
И не только таблицы, поля, но и переменные в коде, и классы и т.п. Просто в начале лениво тщательно подумать о названии и назначении вводимых в программы объектов (классов, функций, таблиц, структур данных), а потом через некоторое время начинают удивляться, как это так могло быть написано.
Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
Антон (LogRus)
Глобальный модератор

ru
Offline Offline
Пол: Мужской
Внимание! Люблю сахар в кубиках!


WWW
« Ответ #2 : 25-08-2006 07:12 » 

да не тот случай когда лень двигатель прогресса
Записан

Странно всё это....
PooH
Глобальный модератор

ru
Offline Offline
Пол: Мужской
... и можно без хлеба!


« Ответ #3 : 25-08-2006 10:17 » 

стандарты не юзаю, но по привычке:
c_xxx - constant
v_xxx - variable
v_aux_xxx - вспомогательная переменная (например, v_aux_num, v_aux_str, что-то вроде dummy)
p_xxx - параметр процедуры/функции (иногда p_in_xxx, p_out_xxx)
t_xxx - type
T_XXX - table name
TXxx - Delphi type (class)
CXxx - C class

ну может еще что-то, сейчас не вспомню.
Записан

Удачного всем кодинга! -=x[PooH]x=-
Антон (LogRus)
Глобальный модератор

ru
Offline Offline
Пол: Мужской
Внимание! Люблю сахар в кубиках!


WWW
« Ответ #4 : 25-08-2006 10:27 » 

PooH, занятно, почти как в какой-то из нотаций C++ Улыбаюсь
я не простандарт как таковой я про некие соглашения внутри проекта/компании/группы
у нас ссылочные поля(на родительскую таблицу) указываются UP или R_TABLE(для прочих таблиц) поле хранит ключ другой таблицы
Записан

Странно всё это....
Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #5 : 25-08-2006 10:32 » 

Цитата: LogRus
у нас ссылочные поля(на родительскую таблицу) указываются UP
У нас Parent...ID при первичном ключе(ах) ...ID
Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #6 : 25-08-2006 10:33 » 

Цитата: LogRus
R_TABLE(для прочих таблиц) поле хранит ключ другой таблицы
Поле(я) первичного ключа внешней таблицы ...ID
Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
Антон (LogRus)
Глобальный модератор

ru
Offline Offline
Пол: Мужской
Внимание! Люблю сахар в кубиках!


WWW
« Ответ #7 : 25-08-2006 10:52 » 

я тоже раньше ID использовал, но как-то он не до конца отражает суть поля
R_TABLE_FIELD более понятен и нет необходимости думать куда эта ссылка ведёт
Записан

Странно всё это....
Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #8 : 25-08-2006 11:42 » 

Цитата: LogRus
я тоже раньше ID использовал, но как-то он не до конца отражает суть поля
Хм... У нас принято, что  название первичного ключа совпадает с именем таблицы + 'ID'. Соответственно, внешние ключи своими названиями тоже чётко указывают, на что они ссылаются.
« Последнее редактирование: 19-12-2007 18:27 от Алексей1153++ » Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
PooH
Глобальный модератор

ru
Offline Offline
Пол: Мужской
... и можно без хлеба!


« Ответ #9 : 25-08-2006 12:50 » 

ключи в зависимости от сложности схемы:
первичные: от id, pk_id до <table_name_acronim>_id(например, prsn_id (id таблицы T_PERSON))
внешние: от ххх_id,  fk_xxx_id до <table_name_acronim>_<column_acronim>_id (prsn_prsn_id, столбец prsn_id таблицы T_PERSON)

в простых проектах не запутаешься, а в сложных идея в том, что по названию столбца можно сказать на какой столбец какой таблицы он ссылается.
« Последнее редактирование: 25-08-2006 12:55 от PooH » Записан

Удачного всем кодинга! -=x[PooH]x=-
Антон (LogRus)
Глобальный модератор

ru
Offline Offline
Пол: Мужской
Внимание! Люблю сахар в кубиках!


WWW
« Ответ #10 : 25-08-2006 18:19 » 

dimka, ты меня не понял
N первичный ключ таблицы
UP ссылка на первичный ключ верхней таблицы
R_TABLE_FIELD это ссылка на поле FIELD таблицы TABLE
PooH, ну да типа этого, но вот про мелкие проекты не согласен, видел пару мелких проектов в которых пришлось пелопачивать названия таблиц и полей, т.к. мозг начинал кипеть от вида первой же таблицы, поля имели мало значащие имена.
Записан

Странно всё это....
Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #11 : 25-08-2006 18:45 » 

Цитата: LogRus
ты меня не понял
N первичный ключ таблицы
UP ссылка на первичный ключ верхней таблицы
R_TABLE_FIELD это ссылка на поле FIELD таблицы TABLE
Действительно, не понял. Это во всех таблицах поле N - первичный ключ? Ну... может быть для каких-то задач автоматизированного управления структурой БД так и удобно... Однако поле UP подходит лишь для многоуровневых справочников... Не всегда таблицы относятся как "верхняя-нижняя"... Про ссылки на поля тоже не понял - ведь ссылки обычно идут на записи. Впрочем, если над определяемой предметной областью структурой БД надстроить таблицы метаданных, то ссылки на поля там можно будет применить...

А чем это поля "...ID" не отражают суть?

Цитата: PooH
в простых проектах не запутаешься, а в сложных идея в том, что по названию столбца можно сказать на какой столбец какой таблицы он ссылается.
Второй человек говорит о ссылке на столбец... Это что за новые веяния? Расскажите Улыбаюсь. В нашей деревне принято ссылаться на записи, каковые идентифицируются первичными ключами тех таблиц, в которых эти записи находятся Улыбаюсь. Хотя, может быть базы данных и проекты мелкие - более чем с 1500 таблиц работать не доводилось Улыбаюсь.
Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
Антон (LogRus)
Глобальный модератор

ru
Offline Offline
Пол: Мужской
Внимание! Люблю сахар в кубиках!


WWW
« Ответ #12 : 28-08-2006 05:37 » 

dimka, ссылка на столбец, это обычно ссылка на первичный ключ не родительской таблицы
что, касается UP, то как-то, так сложилось, что я часто имел дело с иерархическими струкрурами обычно от 2 до 5 уровней.
1500 таблиц Улыбаюсь это нормальный проект Улыбаюсь средне статистический можно сказать.
Записан

Странно всё это....
Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #13 : 28-08-2006 05:43 » 

Цитата: LogRus
что, касается UP, то как-то, так сложилось, что я часто имел дело с иерархическими струкрурами обычно от 2 до 5 уровней.
А многие ко многим как реализуются? Ведь в промежуточной таблице тогда будет требоваться 2 поля UP.
Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
Антон (LogRus)
Глобальный модератор

ru
Offline Offline
Пол: Мужской
Внимание! Люблю сахар в кубиках!


WWW
« Ответ #14 : 28-08-2006 05:59 » 

Многи ко многим реже используется Улыбаюсь гораздо реже, если чесно сейчас не могу вспомнить не одного подобного случая Улыбаюсь
почти всё время прослеживается четкая всязь один-ко-многим
раньше я сам проектировал БД, сейчас это делают специальные люди Улыбаюсь
у нас их зовут Ораклистами, другая часть народа это сишники Улыбаюсь
Записан

Странно всё это....
PooH
Глобальный модератор

ru
Offline Offline
Пол: Мужской
... и можно без хлеба!


« Ответ #15 : 28-08-2006 06:44 » 

Цитата
Второй человек говорит о ссылке на столбец... Это что за новые веяния? Расскажите .
Ну а как еще сказать, когда значения одного столбца ссылаются на значения другого (не обязательно ключа, и совсем не обязательно первичного)?
Записан

Удачного всем кодинга! -=x[PooH]x=-
Антон (LogRus)
Глобальный модератор

ru
Offline Offline
Пол: Мужской
Внимание! Люблю сахар в кубиках!


WWW
« Ответ #16 : 28-08-2006 06:50 » 

PooH, согласен, просто у нас чаще именно на первичный ключ ссылаются
Записан

Странно всё это....
Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #17 : 28-08-2006 09:14 » 

Цитата: LogRus
Многи ко многим реже используется  гораздо реже, если чесно сейчас не могу вспомнить не одного подобного случая
Э... М:М обычно не реализуется - это логическое отношение. Реализуется оно как 1:М М:1 через промежуточную таблицу. Естественно, явные М:М в базе отсутствуют...

Цитата: PooH
Ну а как еще сказать, когда значения одного столбца ссылаются на значения другого (не обязательно ключа, и совсем не обязательно первичного)?
Приведи пример из жизни, когда ссылка идёт на столбец.
Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
PooH
Глобальный модератор

ru
Offline Offline
Пол: Мужской
... и можно без хлеба!


« Ответ #18 : 29-08-2006 08:41 » 

dimka, а кто тут про ссылки говорил? я говорил про столбцы
Записан

Удачного всем кодинга! -=x[PooH]x=-
Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #19 : 29-08-2006 08:54 » 

Цитата: PooH
а кто тут про ссылки говорил?
ТЫ! Если не хочешь отвечать, то не отвечай; я по десять раз одно и то же интересующее меня место цитировать не буду.
Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
PooH
Глобальный модератор

ru
Offline Offline
Пол: Мужской
... и можно без хлеба!


« Ответ #20 : 29-08-2006 11:32 » 

dimka, ГДЕ ?

вот тебе пример:
table t_sexs (sxs_id, def)
table t_person (fio, sxs_sxs_id)
в таблицах нет ни ключей, ни индексов... ничего.


столбец sxs_sxs_id ссылается на столбец sxs_id (это не условие целостности, это устное описание свойств столбца)
про ссылки, ключи и т.п. я ничего не говорил!
« Последнее редактирование: 29-08-2006 11:35 от PooH » Записан

Удачного всем кодинга! -=x[PooH]x=-
Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #21 : 29-08-2006 11:42 » 

Цитата: PooH
столбец sxs_sxs_id ссылается на столбец sxs_id (это не условие целостности, это устное описание свойств столбца) про ссылки, ключи и т.п. я ничего не говорил!
Ничего не понимаю, какое устное описание, какое условие целостности?

В таблице t_person поле sxs_sxs_id есть внешний ключ, ссылающийся на фиктивный первичный ключ таблицы t_sexs поле sxs_id. Связь t_sexs 1:M t_person.
Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
PooH
Глобальный модератор

ru
Offline Offline
Пол: Мужской
... и можно без хлеба!


« Ответ #22 : 30-08-2006 08:52 » 

Я так и не пойму к чему ты прицепился?
Внешний ключ и столбец, в данном случае для меня одно и тоже. Под словом "ссылается" я как раз и понимаю "sxs_sxs_id есть внешний ключ, ссылающийся на первичный ключ таблицы..."

Тема то, про названия, в конце-то концов.

Здесь под словом "ссылается" можно понимать "упоминается".
« Последнее редактирование: 30-08-2006 08:54 от PooH » Записан

Удачного всем кодинга! -=x[PooH]x=-
Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #23 : 30-08-2006 15:07 » 

Цитата: PooH
Внешний ключ и столбец, в данном случае для меня одно и тоже.
А-а, для меня-то это не одно и то же Улыбаюсь. Внешний ключ не есть столбец, потому что не каждый столбец - внешний ключ, и не каждый внешний ключ состоит из одного столбца. Улыбаюсь А я-то думаю, что за ссылающиеся столбцы Улыбаюсь.
Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
PooH
Глобальный модератор

ru
Offline Offline
Пол: Мужской
... и можно без хлеба!


« Ответ #24 : 30-08-2006 19:26 » new

я специально уточнил, что в данном случае.
надеюсь, мы друг друга поняли.
Извиняюсь, если выразился неопределенно/не понятно.
Записан

Удачного всем кодинга! -=x[PooH]x=-
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines