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

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

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

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

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


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

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

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

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


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

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

Итогом всего является кое-как работающая, неоправданно сложная программа, плюс гордый человек, который "умеет решать сложные практические задачи".
...
Рейтинг: 0 / 0
03.08.2005, 09:56
    #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]