Форум программистов, компьютерный форум, киберфорум
Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
0 / 0 / 1
Регистрация: 14.03.2013
Сообщений: 150

Нормализация и с чем ее есть

14.04.2014, 21:41. Показов 2269. Ответов 26
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Допустим есть таблица "Книги"
У нее есть поля
ID
Название книги
Цена
Описание
Количество страниц
Тираж
Год издания

Стоит ли поля цена, количество страниц, тираж и год издания выносить в отдельные таблицы, а в таблице "Книги" указывать id записей из созданных таблиц, например тираж_id и т.д. Или не имеет смысла? Или для каких то полей имеет смысл?
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
14.04.2014, 21:41
Ответы с готовыми решениями:

Есть ли такое понятие, как Visual C#? Если есть, чем он отличается от обычного C#?
Суть в том, что как только ознакомлюсь с C#, планирую переходить на Unity. Пару раз встречал формулировку Visual C# и вот подумал, а что...

Таблицы. С чем их есть?
Здравствуйте. Есть веб интерфейс суть которого в работе с кучей заказов. Заказы сведены в таблицу (table class="orders") и...

С чем есть DAO?
Здравствуйте! Совершенно не понимаю паттерн DAO. Хотелось бы чтобы кто-то помог разобраться с ним и объяснил бы на пальцах. К примеру у нас...

26
1313 / 945 / 144
Регистрация: 17.01.2013
Сообщений: 2,348
15.04.2014, 16:19
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от litbit Посмотреть сообщение
Но ведь может быть такое, что. В таблице "книги" будет 10 записей (разных книг, разных авторов) но с одинаковым названием. Получается одно и тоже название книги будет записано 10 раз!!!
Вполне может быть, и что Вас напрягает?

Ведь все они описывают разные объекты и никак не зависят одно от другого.

Что, тем не менее, никак не запрещает вам выделить новую сущность "Название книги" и при заполнении атрибутов "Книга" требовать существования названия книги в справочнике "Допустимые названия" (если есть внутреннее убеждение в необходимости такой сущности в вашей базе).
1
0 / 0 / 1
Регистрация: 14.03.2013
Сообщений: 150
15.04.2014, 17:42  [ТС]
Цитата Сообщение от cygapb-007 Посмотреть сообщение
если есть внутреннее убеждение в необходимости такой сущности в вашей базе
А как вы считаете такая сущность нужна? Ведь если ее не создать, тогда данные в атрибуте "название книги" будут избыточными!!!
0
 Аватар для KuKu
1563 / 1041 / 94
Регистрация: 17.04.2009
Сообщений: 2,995
15.04.2014, 18:22
Цитата Сообщение от litbit Посмотреть сообщение
А как вы считаете такая сущность нужна? Ведь если ее не создать, тогда данные в атрибуте "название книги" будут избыточными!!!
С точки зрения маниакальной нормализации, вы правы - это будет "нормализованнее". С практической точки зрения вам уже сказали, что так лучше не делать. Выносить отдельно только название в отдельный справочник в общем бессмысленно - получится справочник ради справочника(т.к большинство названий уникальны).
Если хочется можно сделать отдельно сущность "произведение"(название, автор, год написания) и "книга"(ссылка на произведение, тирах, год выпуска) - но это уже зависит от требований к тому, что вы делаете.
1
1313 / 945 / 144
Регистрация: 17.01.2013
Сообщений: 2,348
15.04.2014, 18:57
Цитата Сообщение от KuKu Посмотреть сообщение
можно сделать отдельно сущность "произведение"(название, автор, год написания)
"автора"("авторов") я бы упрощать не стал, реально много книг пишутся в соавторстве. Наверное, бывает и более трех-четырех авторов. А уж про антологию если вспомнить - вообще караул ;-) Произведение - 1-2 автора, таких произведений, с разными авторами, штук 10-30 в издании... бррр...
0
0 / 0 / 1
Регистрация: 14.03.2013
Сообщений: 150
15.04.2014, 19:05  [ТС]
Цитата Сообщение от cygapb-007 Посмотреть сообщение
"автора"("авторов") я бы упрощать не стал, реально много книг пишутся в соавторстве.
здесь дело не только в соавторстве, но и в том, что если в таблице "книги" или "произведения" указывать авторов, т.е. если не выносить авторов в отдельную таблицу, то будет ОЧЕНЬ избыточно. Ну и конечно соавторство ... тут связь многие ко многим получается (добавляем промежуточную табличку), т.е. реализуем так. таблица Книги (id, название, id автора)- таблица Авторы_Книг (id книги, id автора) - таблица Авторы (id, фио автора) ну как то так)
0
1313 / 945 / 144
Регистрация: 17.01.2013
Сообщений: 2,348
15.04.2014, 19:30
может, имеет смысл "произведение"(название, коллектив авторов, еще что-то)
и уже от коллектива авторов плясать, а "книгу" - собирать из "произведений"?

Хотя конкретный вариант зависит от круга решаемых задач, может и лишнее это окажется, невостребованное.
0
Антикодер
Эксперт функциональных языков программирования
1889 / 871 / 48
Регистрация: 15.09.2012
Сообщений: 3,092
18.04.2014, 17:12
Разбирая "названия" сущностей, я пришёл к следующей проблеме:
Разобрать мысли на классы сущностей
Если мы стремимся к недостижимому идеалу, то получается, что мы должны считать название сущности(книги) в специальную программу(которую ещё не изобрели, или возможно существуют примитивные реализации), которая сможет нас отвязать от языковой принадлежности названия сущности(книги), чтобы закодировать это название в некое подобие человеческой мысли(не используя ни один из лингвистических языков). То есть мы запишем в базу только id сущности, которую назовём "подобие мысли". Эта сущность возможно будет представлять громадные массивы чисел(в представлении компьютерной памяти). Возможно квантовые компьютеры смогут более компактно хранить "подобие мысли".
Далее чтоб узнать название книги(на любом языке!) достаточно прочитать данные в сущности "подобие мысли" и переконвертировать этой сложной программой в нужный язык.
Следуя этой идее, мы особо не храним осмысленные слова на конкретном лингвистическом языке в реляционной базе.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
18.04.2014, 17:12

Итераторы и с чем их есть
Есть vector<SomeClass> someArray. В SomeClass есть поле someField. Не могу для итератора vector'а someArray присвоить значение полю...

Есть таки чем гордиться!...
Более 90% суперкомпьютеров мира используют Linux: http://news.softodrom.ru/ap/b7484.shtml

Есть над чем подумать...
Ребят, пишу сайт...решил сделать его своеобразным...неплохо было бы сделать окна в форме куба...т.е. не кликать на мышь,чтобы перейти в...

Контейнерный класс, с чем есть?
Парни, всем привет! Вот сижу с домашкой... Нужно сделать контейнерный класс для двух классов (книга и библиотека) на основе массива......

Доступно меньше чем есть
проблема стандартная.Докупил оперативную память 4gb kingston 1333 mhz и совместил с kingston 2gb 1333mhz и silicon power 1gb 1333mhz...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
27
Ответ Создать тему
Новые блоги и статьи
Транслитерация текста с кириллицы на латиницу (вариант №2)
Maks 13.11.2026
Обновленная версия ранее созданной обработки. Добавлено: - Проверка исходного текста на кириллицу, через обращение к стандартной функции "ТолькоКириллицаВСтроке" из общего модуля. . .
Часы с термометром и праздничным календарем
yariko 12.11.2026
Сегодня мы рассмотрим как можно сделать отличные многофункциональные часы. Итак, поставим конкретную задачу: разработать часы с календарем, двумя термодатчиками, выводом поздравительных сообщений. . .
Транслитерация текста с кириллицы на латиницу (вариант №1)
Maks 11.11.2026
Решил облегчить жизнь себе и коллегам админам при создании электронных почтовых ящиков для пользователей, в результате написал обработку "Транслитерация текста" с кириллицы на латиницу, а в ней. . .
Книги по геймдизайну, левел-дизайну, игровым механикам и проектированию игрового опыта
8Observer8 08.11.2026
Содержание блога | English Version 1. 2003 - 06 - Designing Virtual Worlds (1st Edition) Автор: Richard A. Bartle | Объем: 768 стр. Ссылки: Amazon . . .
Родители токсичные абьюзеры по отношению к своим детям ругают их оскорбляют не любят
zorxor 08.11.2026
Жить в атмосфере постоянных оскорблений, критики и холодности со стороны родителей — это тяжелое и болезненное испытание, которое оставляет глубокие эмоциональные раны. Токсичное и абьюзивное. . .
Как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Ответ от Джемени ИИ.
zorxor 08.11.2026
Джемени, как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Многие люди, возвращаясь домой, сразу переодеваются в максимально свободную одежду или вовсе предпочитают. . .
Паттерн очереди действий/команд (Action / Command Queue). Система очереди действий и кат-сцен с SDL3 Callbacks, cglm и OpenGL
8Observer8 07.11.2026
Содержание блога | English Version Руководство для начинающих по реализации паттерна очереди действий/ команд (Action / Command Queue) на C++ (C++20) с использованием официального SDL3 Callbacks. . .
Проверка полного ФИО в типовом справочнике
Maks 07.11.2026
Решение реализовано в конфигурации КА2, на примере справочника "КонтактныеЛицаПартнеров". Задача: Запрет инициалов. Не допускаеть использование сокращений вида "И. И. ", "И. И. ", "И И" и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru