powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Объясните кто прав: студент или человек с опытом?
25 сообщений из 82, страница 1 из 4
Объясните кто прав: студент или человек с опытом?
    #33188174
Романыч84
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
История такова: я делаю дипломную работу на большом комбинате для маленького цеха. Спроектировал базу данных и принес на рецензирование в инженерный центр. Ведущий специалист посмотрел и заставил переделывать. Мотивировал вот чем: я ключом в таблицах делал какой-нибудь идентификатор (инвентарный номер, номер по журналу и т.д.). Он сказал что все то что вноситься руками не может являться ключом таблицы. Пришлось везде ставить автоинкрементируемые поля, даже в связующих таблицах. Он сказал что так делают все специалисты баз данных. Кто прав? Объясните.
...
Рейтинг: 0 / 0
Объясните кто прав: студент или человек с опытом?
    #33188181
Goffman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
imho, человек с опытом правильно говорит.
Например, списали старое оборудование, а вновь закупленное зарегистрировали под тем же инвентарным. Как быть? удалять старую запись из таблицы?
...
Рейтинг: 0 / 0
Объясните кто прав: студент или человек с опытом?
    #33188190
Романыч84
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а как быть с тем, что могут по запарке ввести 2 строки с одинаковыми данными, не будеш же отслеживать дубли?
...
Рейтинг: 0 / 0
Объясните кто прав: студент или человек с опытом?
    #33188197
Романыч84
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да, и еще. а как мотивировать то, что в связующих таблицах тоже стоят автоинкр. поля, даже в тех что связались по предыдущим полям?
...
Рейтинг: 0 / 0
Объясните кто прав: студент или человек с опытом?
    #33188211
Goffman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автора как быть с тем, что могут по запарке ввести 2 строки с одинаковыми данными, не будеш же отслеживать дубли?
На это есть есть уникальные ключи, которые в крайнем случае можно отключить. А с первичными ключами так не получится
...
Рейтинг: 0 / 0
Объясните кто прав: студент или человек с опытом?
    #33188234
Urri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ищите в этом разделе форума: тема обсуждалась неоднократно.
Дело в том, что автоинкременты в большинстве случаев способны защитить нас от множества ошибок при проектировании. Но полностью заменить собой естественные ключи они не могут. По многим причинам.
При использовании автоинка, по крайней мере, там, где у нас в таблице есть комбинация полей, составляющая естественный ключ, должен быть по такой комбинации построен уникальный "кандидатный" индекс.
Теперь что у Вас.
"...я ключом в таблицах делал какой-нибудь идентификатор (инвентарный номер, номер по журналу и т.д.)."
Но ведь эти инвентарные номера - это не естественные ключи! Они в журналах так и появляются: в виде автоинкремента. Т.е. бухгалтер открывает гроссбух, идет на последнюю страницу, в новую запись пишет номер предпоследней записи плюс один. ;-)
В Вашем случае прав опытный товарищ. Программа сама должна исполнять роль генератора инвентарных номеров и номеров по журналу.
...
Рейтинг: 0 / 0
Объясните кто прав: студент или человек с опытом?
    #33188259
Тип-Топ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Романыч84История такова: я делаю дипломную работу на большом комбинате для маленького цеха. Спроектировал базу данных и принес на рецензирование в инженерный центр. Ведущий специалист посмотрел и заставил переделывать. Мотивировал вот чем: я ключом в таблицах делал какой-нибудь идентификатор (инвентарный номер, номер по журналу и т.д.). Он сказал что все то что вноситься руками не может являться ключом таблицы. Пришлось везде ставить автоинкрементируемые поля, даже в связующих таблицах. Он сказал что так делают все специалисты баз данных. Кто прав? Объясните.
См. Ключ или отмычка
...
Рейтинг: 0 / 0
Объясните кто прав: студент или человек с опытом?
    #33188563
Фотография Lamer@fools.ua
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Романыч84История такова: я делаю дипломную работу на большом комбинате для маленького цеха. Спроектировал базу данных и принес на рецензирование в инженерный центр. Ведущий специалист посмотрел и заставил переделывать. Мотивировал вот чем: я ключом в таблицах делал какой-нибудь идентификатор (инвентарный номер, номер по журналу и т.д.). Он сказал что все то что вноситься руками не может являться ключом таблицы. Пришлось везде ставить автоинкрементируемые поля, даже в связующих таблицах. Он сказал что так делают все специалисты баз данных. Кто прав? Объясните.

Click and read .
...
Рейтинг: 0 / 0
Объясните кто прав: студент или человек с опытом?
    #33189515
Фотография PVP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Романыч84 ... Ведущий специалист посмотрел и заставил переделывать. Мотивировал вот чем: я ключом в таблицах делал какой-нибудь идентификатор (инвентарный номер, номер по журналу и т.д.). Он сказал что все то что вноситься руками не может являться ключом таблицы.
... Кто прав? Объясните.Специалист не прав по двум причинам. Первая - его задача дать рецензию, а не заставлять переделывать. У него может быть свое мнение, но дипломник имеет право защищать свое.

Вторая - это вопрос технический и в разных случаях хороши разные варианты. Они много раз обсуждались. Если бы это было однозначно, то таких обсуждений не было бы. В качестве примера, пусть попробует специалист предложить ключ для абонентов телефонной компании лучше, чем номер телефона. Или даст аргументы для операторов компании делать поиск абонента по некоторому ID.
...
Рейтинг: 0 / 0
Объясните кто прав: студент или человек с опытом?
    #33189547
4321
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PVP В качестве примера, пусть попробует специалист предложить ключ для абонентов телефонной компании лучше, чем номер телефона. Или даст аргументы для операторов компании делать поиск абонента по некоторому ID.
на моей памяти 2-ды менялся номер телефона. (и у массы соседей тоже). кхм. идиотское предложение, имхо. But - "Ничего личного".
...
Рейтинг: 0 / 0
Объясните кто прав: студент или человек с опытом?
    #33189769
Фотография PVP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
4321 PVP В качестве примера, пусть попробует специалист предложить ключ для абонентов телефонной компании лучше, чем номер телефона. Или даст аргументы для операторов компании делать поиск абонента по некоторому ID.
на моей памяти 2-ды менялся номер телефона. (и у массы соседей тоже). кхм. идиотское предложение, имхо. But - "Ничего личного".Так что было после замены номера? Какой код лицевого счета на квитанции? А какой код спрашивают в кассе при оплате? Или какой код называете, когда звоните на АТС?
...
Рейтинг: 0 / 0
Объясните кто прав: студент или человек с опытом?
    #33189921
Фотография 1024
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так что было после замены номера? Какой код лицевого счета на квитанции? А
какой код спрашивают в кассе при оплате? Или какой код называете, когда
звоните на АТС?
---------------------

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

Касательно вопроса топика - так чё здесь спрашивать-то? У препода и спросить
можно чтоб объяснил


Posted via ActualForum NNTP Server 1.2
...
Рейтинг: 0 / 0
Объясните кто прав: студент или человек с опытом?
    #33189988
Фотография PVP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1024
Так что было после замены номера? Какой код лицевого счета на квитанции? А
какой код спрашивают в кассе при оплате? Или какой код называете, когда
звоните на АТС?
---------------------

суррогатные ключи отличаются от естественных именно тем что они не привязаны к предметной области. Искать человека можно по телефону но это не значит что для таблички "человеки" это поле обязательно должно быть первичным ключёмНу понятно, чем отличаются сурогатные ключи. Вопрос был на счет кода на АТС. Какой там ключ?
1024
Касательно вопроса топика - так чё здесь спрашивать-то? У препода и спросить можно чтоб объяснил Вопрос задан в расчете на то, что здесь есть специалисты и их количество больше, чем один преподаватель.

К стати, преподаватель мог в процессе учебы применять естественный ключ. Как тогда быть с рецензентом?
...
Рейтинг: 0 / 0
Объясните кто прав: студент или человек с опытом?
    #33189996
MLeon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PVPВ качестве примера, пусть попробует специалист предложить ключ для абонентов телефонной компании лучше, чем номер телефона. Или даст аргументы для операторов компании делать поиск абонента по некоторому ID.
У меня три номера. В одной компании. Я "един в трех лицах"?
...
Рейтинг: 0 / 0
Объясните кто прав: студент или человек с опытом?
    #33190078
4321
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PVP Так что было после замены номера? Какой код лицевого счета на квитанции? А какой код спрашивают в кассе при оплате? Или какой код называете, когда звоните на АТС?
кхм. это не мои проблемы. Т.ч. не помню. (и я не напрягаюсь узнавать, не было ли в афтрах их БД изврастченцеф ( ничего личного ).
...
Рейтинг: 0 / 0
Объясните кто прав: студент или человек с опытом?
    #33190232
Фотография PVP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
4321 PVP Так что было после замены номера? Какой код лицевого счета на квитанции? А какой код спрашивают в кассе при оплате? Или какой код называете, когда звоните на АТС?
кхм. это не мои проблемы. Т.ч. не помню. (и я не напрягаюсь узнавать, не было ли в афтрах их БД изврастченцеф ( ничего личного ).Боже! Какая это пародия на анонизм! - сказал анонист, познав женщину ( ничего личного ).
...
Рейтинг: 0 / 0
Объясните кто прав: студент или человек с опытом?
    #33190505
Sarin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть ник игрока. Но уже есть автоинкрементный суррогатный ключь. Ник уникальный. Но зачем тогда суррогатный ключь? В умной книжке я прочитал, что суррогатные ключи есть смысл создавать не только в случае отсутствия естественного, но и для ускорения работы БД. Ведь поиск по полю int провести проще, чем по полю VARCHAR(32). А с другой стороны я как-то првык при создании таблицы первым полем писать что-то типа id serial primary key.

А есть у меня в базе ещё таблица со связью. Два поля int. Так вот там я ключь сурогатный не стал делать. А зачем? Одна улица с другой два раза связанна быть не может. Вот я и сделал составной ключь по обоим полям.
...
Рейтинг: 0 / 0
Объясните кто прав: студент или человек с опытом?
    #33190945
Фотография 1024
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
таблица "игроки" вероятно связана с таблицей "игры". При сменен ника с
УльтроКиллер на УльтроМегаКиллер нужно будет поменять ник этого игрока в
таблице "игры" везде где он встречается и потом в таблице "игроки". В этом
причина рекомендаций неиспользования естественных ключей а не в
производительности.


Posted via ActualForum NNTP Server 1.2
...
Рейтинг: 0 / 0
Объясните кто прав: студент или человек с опытом?
    #33191000
4321
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PVP познав женщину
думал, как же ваше психическое связало тему обсуждения с цитируемым анекдотом. Остается предположить наличие у вас-с девиации на естественные ключи. Бросьте это дело. Расслабьтесь. Найдите женщину. На крайняк - вручную.
ничего личного
...
Рейтинг: 0 / 0
Объясните кто прав: студент или человек с опытом?
    #33191023
Фотография Lamer@fools.ua
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для чукчей, которые думают, что они писатели, а не читатели привожу http://www.informix.com.ua/articles/key/key.htm] ссылку ещё раз.
...
Рейтинг: 0 / 0
Объясните кто прав: студент или человек с опытом?
    #33196900
Фотография Владимир П.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1024
таблица "игроки" вероятно связана с таблицей "игры". При сменен ника с
УльтроКиллер на УльтроМегаКиллер нужно будет поменять ник этого игрока в
таблице "игры" везде где он встречается и потом в таблице "игроки"
И в чём проблема?
...
Рейтинг: 0 / 0
Объясните кто прав: студент или человек с опытом?
    #33197036
4321
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир П. 1024
таблица "игроки" вероятно связана с таблицей "игры". При сменен ника с
УльтроКиллер на УльтроМегаКиллер нужно будет поменять ник этого игрока в
таблице "игры" везде где он встречается и потом в таблице "игроки"
И в чём проблема?
проблема в том, что не замочив всех, кто в танке, "УльтроКиллер" не достоин звания "УльтроМегаКиллер".
А так - никаких проблем
...
Рейтинг: 0 / 0
Объясните кто прав: студент или человек с опытом?
    #33197105
Sarin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати про суррогатные ключи.

Они автоматом позволяют привести базу после к 3НФ к НФБК.
И вообще нормализацию упрощают сильно.
...
Рейтинг: 0 / 0
Объясните кто прав: студент или человек с опытом?
    #33197412
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир П. 1024
таблица "игроки" вероятно связана с таблицей "игры". При сменен ника с
УльтроКиллер на УльтроМегаКиллер нужно будет поменять ник этого игрока в
таблице "игры" везде где он встречается и потом в таблице "игроки"
И в чём проблема?
В технике реализации. До тех пор, пока не все СУБД поддерживают deferred foreign keys, попытка выполнить эту операцию натыкается на совершенно идиотские проблемы и требует не менее идиотских решений. Например, обнаружив, что ключ мешает заменить ник игрока, гениальный разработчик обычно говорит - ладно, вставим новую запись с новым ником, перенаправим все ссылки, потом старую удалим. Делают так - и натыкаются, например, на бизнес-правило "разные игроки не должны иметь одинаковый email", попросту говоря срабатывает другой constraint. Делают обход этого, вляпываются в третье..... Другой, более гениальный вариант - мелькающие периодически на форумах вопросы "а как мне временно отключить constraint". Есть, наверное, и третий, и четвертый.....

Итогом всего является кое-как работающая, неоправданно сложная программа, плюс гордый человек, который "умеет решать сложные практические задачи".
...
Рейтинг: 0 / 0
Объясните кто прав: студент или человек с опытом?
    #33198213
Фотография Владимир П.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer Владимир П. 1024
поменять ник этого игрока в таблице "игры" везде где он встречается и потом в таблице "игроки"
И в чём проблема?
До тех пор, пока не все СУБД поддерживают deferred foreign keys, попытка выполнить эту операцию натыкается на совершенно идиотские проблемы и требует не менее идиотских решений. Например, обнаружив, что ключ мешает заменить ник игрока, гениальный разработчик обычно говорит - ладно, вставим новую запись с новым ником, перенаправим все ссылки, потом старую удалим. Делают так - и натыкаются, например, на бизнес-правило "разные игроки не должны иметь одинаковый email", попросту говоря срабатывает другой constraint. Делают обход этого, вляпываются в третье..... Другой, более гениальный вариант - мелькающие периодически на форумах вопросы "а как мне временно отключить constraint". Есть, наверное, и третий, и четвертый.....

Ой, ужас какой рассказываете.
Если в БД нет CONSTRAINT ... ON UPDATE CASCADE, то можно реализовать каскадное обновление через триггер. Всегда обновление поля и запуск назначенных на это событие триггеров происходит атомарно -- и только после триггерного обновления, когда база снова в согласованном состоянии, происходит проверка constraint'ов.
...
Рейтинг: 0 / 0
25 сообщений из 82, страница 1 из 4
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Объясните кто прав: студент или человек с опытом?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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