Антон (LogRus)
|
|
« : 25-08-2006 05:55 » |
|
Добрый день!
Интересует меня такой вопрос, кто-нибуть применяет какой-то стандарт/документ/инструкцию, для задания имён таблиц, полей и т.д.
Например, пакеты всегда называть P_%, функции F_%, всегда присать имена таблиц полей и прочего в upper_case не завимо от того, где используется имя(код, документаци, почта)
вопрос собственно к чему, что-то стал замечать, что как-то очень странно люди называют таблицы, поля и прочее в небольших(может они и большие) проектах, если верить форуму.
|
|
« Последнее редактирование: 25-08-2006 06:00 от LogRus »
|
Записан
|
Странно всё это....
|
|
|
Dimka
Деятель
Команда клуба
Offline
Пол:
|
|
« Ответ #1 : 25-08-2006 07:06 » |
|
вопрос собственно к чему, что-то стал замечать, что как-то очень странно люди называют таблицы, поля и прочее в небольших(может они и большие) проектах, если верить форуму. И не только таблицы, поля, но и переменные в коде, и классы и т.п. Просто в начале лениво тщательно подумать о названии и назначении вводимых в программы объектов (классов, функций, таблиц, структур данных), а потом через некоторое время начинают удивляться, как это так могло быть написано.
|
|
|
Записан
|
Программировать - значит понимать (К. Нюгард) Невывернутое лучше, чем вправленное (М. Аврелий) Многие готовы скорее умереть, чем подумать (Б. Рассел)
|
|
|
Антон (LogRus)
|
|
« Ответ #2 : 25-08-2006 07:12 » |
|
да не тот случай когда лень двигатель прогресса
|
|
|
Записан
|
Странно всё это....
|
|
|
PooH
Глобальный модератор
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)
|
|
« Ответ #4 : 25-08-2006 10:27 » |
|
PooH, занятно, почти как в какой-то из нотаций C++ я не простандарт как таковой я про некие соглашения внутри проекта/компании/группы у нас ссылочные поля(на родительскую таблицу) указываются UP или R_TABLE(для прочих таблиц) поле хранит ключ другой таблицы
|
|
|
Записан
|
Странно всё это....
|
|
|
Dimka
Деятель
Команда клуба
Offline
Пол:
|
|
« Ответ #5 : 25-08-2006 10:32 » |
|
у нас ссылочные поля(на родительскую таблицу) указываются UP У нас Parent...ID при первичном ключе(ах) ...ID
|
|
|
Записан
|
Программировать - значит понимать (К. Нюгард) Невывернутое лучше, чем вправленное (М. Аврелий) Многие готовы скорее умереть, чем подумать (Б. Рассел)
|
|
|
Dimka
Деятель
Команда клуба
Offline
Пол:
|
|
« Ответ #6 : 25-08-2006 10:33 » |
|
R_TABLE(для прочих таблиц) поле хранит ключ другой таблицы Поле(я) первичного ключа внешней таблицы ...ID
|
|
|
Записан
|
Программировать - значит понимать (К. Нюгард) Невывернутое лучше, чем вправленное (М. Аврелий) Многие готовы скорее умереть, чем подумать (Б. Рассел)
|
|
|
Антон (LogRus)
|
|
« Ответ #7 : 25-08-2006 10:52 » |
|
я тоже раньше ID использовал, но как-то он не до конца отражает суть поля R_TABLE_FIELD более понятен и нет необходимости думать куда эта ссылка ведёт
|
|
|
Записан
|
Странно всё это....
|
|
|
Dimka
Деятель
Команда клуба
Offline
Пол:
|
|
« Ответ #8 : 25-08-2006 11:42 » |
|
я тоже раньше ID использовал, но как-то он не до конца отражает суть поля Хм... У нас принято, что название первичного ключа совпадает с именем таблицы + 'ID'. Соответственно, внешние ключи своими названиями тоже чётко указывают, на что они ссылаются.
|
|
« Последнее редактирование: 19-12-2007 18:27 от Алексей1153++ »
|
Записан
|
Программировать - значит понимать (К. Нюгард) Невывернутое лучше, чем вправленное (М. Аврелий) Многие готовы скорее умереть, чем подумать (Б. Рассел)
|
|
|
PooH
Глобальный модератор
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)
|
|
« Ответ #10 : 25-08-2006 18:19 » |
|
dimka, ты меня не понял N первичный ключ таблицы UP ссылка на первичный ключ верхней таблицы R_TABLE_FIELD это ссылка на поле FIELD таблицы TABLE PooH, ну да типа этого, но вот про мелкие проекты не согласен, видел пару мелких проектов в которых пришлось пелопачивать названия таблиц и полей, т.к. мозг начинал кипеть от вида первой же таблицы, поля имели мало значащие имена.
|
|
|
Записан
|
Странно всё это....
|
|
|
Dimka
Деятель
Команда клуба
Offline
Пол:
|
|
« Ответ #11 : 25-08-2006 18:45 » |
|
ты меня не понял N первичный ключ таблицы UP ссылка на первичный ключ верхней таблицы R_TABLE_FIELD это ссылка на поле FIELD таблицы TABLE Действительно, не понял. Это во всех таблицах поле N - первичный ключ? Ну... может быть для каких-то задач автоматизированного управления структурой БД так и удобно... Однако поле UP подходит лишь для многоуровневых справочников... Не всегда таблицы относятся как "верхняя-нижняя"... Про ссылки на поля тоже не понял - ведь ссылки обычно идут на записи. Впрочем, если над определяемой предметной областью структурой БД надстроить таблицы метаданных, то ссылки на поля там можно будет применить... А чем это поля "...ID" не отражают суть? в простых проектах не запутаешься, а в сложных идея в том, что по названию столбца можно сказать на какой столбец какой таблицы он ссылается. Второй человек говорит о ссылке на столбец... Это что за новые веяния? Расскажите . В нашей деревне принято ссылаться на записи, каковые идентифицируются первичными ключами тех таблиц, в которых эти записи находятся . Хотя, может быть базы данных и проекты мелкие - более чем с 1500 таблиц работать не доводилось .
|
|
|
Записан
|
Программировать - значит понимать (К. Нюгард) Невывернутое лучше, чем вправленное (М. Аврелий) Многие готовы скорее умереть, чем подумать (Б. Рассел)
|
|
|
Антон (LogRus)
|
|
« Ответ #12 : 28-08-2006 05:37 » |
|
dimka, ссылка на столбец, это обычно ссылка на первичный ключ не родительской таблицы что, касается UP, то как-то, так сложилось, что я часто имел дело с иерархическими струкрурами обычно от 2 до 5 уровней. 1500 таблиц это нормальный проект средне статистический можно сказать.
|
|
|
Записан
|
Странно всё это....
|
|
|
Dimka
Деятель
Команда клуба
Offline
Пол:
|
|
« Ответ #13 : 28-08-2006 05:43 » |
|
что, касается UP, то как-то, так сложилось, что я часто имел дело с иерархическими струкрурами обычно от 2 до 5 уровней. А многие ко многим как реализуются? Ведь в промежуточной таблице тогда будет требоваться 2 поля UP.
|
|
|
Записан
|
Программировать - значит понимать (К. Нюгард) Невывернутое лучше, чем вправленное (М. Аврелий) Многие готовы скорее умереть, чем подумать (Б. Рассел)
|
|
|
Антон (LogRus)
|
|
« Ответ #14 : 28-08-2006 05:59 » |
|
Многи ко многим реже используется гораздо реже, если чесно сейчас не могу вспомнить не одного подобного случая почти всё время прослеживается четкая всязь один-ко-многим раньше я сам проектировал БД, сейчас это делают специальные люди у нас их зовут Ораклистами, другая часть народа это сишники
|
|
|
Записан
|
Странно всё это....
|
|
|
PooH
Глобальный модератор
Offline
Пол:
... и можно без хлеба!
|
|
« Ответ #15 : 28-08-2006 06:44 » |
|
Второй человек говорит о ссылке на столбец... Это что за новые веяния? Расскажите . Ну а как еще сказать, когда значения одного столбца ссылаются на значения другого (не обязательно ключа, и совсем не обязательно первичного)?
|
|
|
Записан
|
Удачного всем кодинга! -=x[PooH]x=-
|
|
|
Антон (LogRus)
|
|
« Ответ #16 : 28-08-2006 06:50 » |
|
PooH, согласен, просто у нас чаще именно на первичный ключ ссылаются
|
|
|
Записан
|
Странно всё это....
|
|
|
Dimka
Деятель
Команда клуба
Offline
Пол:
|
|
« Ответ #17 : 28-08-2006 09:14 » |
|
Многи ко многим реже используется гораздо реже, если чесно сейчас не могу вспомнить не одного подобного случая Э... М:М обычно не реализуется - это логическое отношение. Реализуется оно как 1:М М:1 через промежуточную таблицу. Естественно, явные М:М в базе отсутствуют... Ну а как еще сказать, когда значения одного столбца ссылаются на значения другого (не обязательно ключа, и совсем не обязательно первичного)? Приведи пример из жизни, когда ссылка идёт на столбец.
|
|
|
Записан
|
Программировать - значит понимать (К. Нюгард) Невывернутое лучше, чем вправленное (М. Аврелий) Многие готовы скорее умереть, чем подумать (Б. Рассел)
|
|
|
PooH
Глобальный модератор
Offline
Пол:
... и можно без хлеба!
|
|
« Ответ #18 : 29-08-2006 08:41 » |
|
dimka, а кто тут про ссылки говорил? я говорил про столбцы
|
|
|
Записан
|
Удачного всем кодинга! -=x[PooH]x=-
|
|
|
Dimka
Деятель
Команда клуба
Offline
Пол:
|
|
« Ответ #19 : 29-08-2006 08:54 » |
|
а кто тут про ссылки говорил? ТЫ! Если не хочешь отвечать, то не отвечай; я по десять раз одно и то же интересующее меня место цитировать не буду.
|
|
|
Записан
|
Программировать - значит понимать (К. Нюгард) Невывернутое лучше, чем вправленное (М. Аврелий) Многие готовы скорее умереть, чем подумать (Б. Рассел)
|
|
|
PooH
Глобальный модератор
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
Деятель
Команда клуба
Offline
Пол:
|
|
« Ответ #21 : 29-08-2006 11:42 » |
|
столбец sxs_sxs_id ссылается на столбец sxs_id (это не условие целостности, это устное описание свойств столбца) про ссылки, ключи и т.п. я ничего не говорил! Ничего не понимаю, какое устное описание, какое условие целостности? В таблице t_person поле sxs_sxs_id есть внешний ключ, ссылающийся на фиктивный первичный ключ таблицы t_sexs поле sxs_id. Связь t_sexs 1:M t_person.
|
|
|
Записан
|
Программировать - значит понимать (К. Нюгард) Невывернутое лучше, чем вправленное (М. Аврелий) Многие готовы скорее умереть, чем подумать (Б. Рассел)
|
|
|
PooH
Глобальный модератор
Offline
Пол:
... и можно без хлеба!
|
|
« Ответ #22 : 30-08-2006 08:52 » |
|
Я так и не пойму к чему ты прицепился? Внешний ключ и столбец, в данном случае для меня одно и тоже. Под словом "ссылается" я как раз и понимаю "sxs_sxs_id есть внешний ключ, ссылающийся на первичный ключ таблицы..."
Тема то, про названия, в конце-то концов.
Здесь под словом "ссылается" можно понимать "упоминается".
|
|
« Последнее редактирование: 30-08-2006 08:54 от PooH »
|
Записан
|
Удачного всем кодинга! -=x[PooH]x=-
|
|
|
Dimka
Деятель
Команда клуба
Offline
Пол:
|
|
« Ответ #23 : 30-08-2006 15:07 » |
|
Внешний ключ и столбец, в данном случае для меня одно и тоже. А-а, для меня-то это не одно и то же . Внешний ключ не есть столбец, потому что не каждый столбец - внешний ключ, и не каждый внешний ключ состоит из одного столбца. А я-то думаю, что за ссылающиеся столбцы .
|
|
|
Записан
|
Программировать - значит понимать (К. Нюгард) Невывернутое лучше, чем вправленное (М. Аврелий) Многие готовы скорее умереть, чем подумать (Б. Рассел)
|
|
|
PooH
Глобальный модератор
Offline
Пол:
... и можно без хлеба!
|
|
« Ответ #24 : 30-08-2006 19:26 » |
|
я специально уточнил, что в данном случае. надеюсь, мы друг друга поняли. Извиняюсь, если выразился неопределенно/не понятно.
|
|
|
Записан
|
Удачного всем кодинга! -=x[PooH]x=-
|
|
|
|