Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.61/57: Рейтинг темы: голосов - 57, средняя оценка - 4.61
 Аватар для Ameli
2096 / 1172 / 39
Регистрация: 05.11.2009
Сообщений: 1,605

О разработке структуры базы данных (для начинающих) (обсуждение статьи)

01.02.2012, 12:01. Показов 12563. Ответов 65
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Предлагаю обсудить здесь "статью", давайте ее откорректируем, дополним, и будет нормальное пособие для начинающих о том, с чего начать, как правильно построить структуру бд, на что следует обратить внимание в первую очередь. Потому как такие вопросы на форуме задаются очень часто.
3
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
01.02.2012, 12:01
Ответы с готовыми решениями:

Книга для начинающих изучать базы данных
Неспешно пишу книгу, для начинающих изучать базы данных. Упор сделан в основном на практику, чтобы в кратчайшие сроки читатель смог...

Совет в разработке интерфейса базы данных
Тема курсовой роботы: Рейтинг литературы. Первый вопрос: поскольку каждая книга имеет право быть написанной сразу несколькими...

Статьи из базы данных
всем привет,сейчас делаю свой блог на php и дело дошло до того,что мне нужно было сделать вывод статей из базы данных,поначалу все было...

65
39 / 39 / 0
Регистрация: 02.03.2012
Сообщений: 91
19.03.2012, 11:25
Студворк — интернет-сервис помощи студентам
я новичок, и мне вряд ли удастся прочитать хотя бы заголовки тем, не смогу вот так сразу выбрать кусочек , намекните, а я подумаю и м.б. попробую
0
2644 / 1343 / 256
Регистрация: 25.10.2010
Сообщений: 2,196
19.03.2012, 13:54
После столь бурного обсуждения осмелюсь все-таки еще раз задать вопрос, на который ответа не прозвучало.
Я прочитала статью Ameli с примером разработки БД. Все очень подробно, доходчиво, логично описано. Но что касается таблиц из двух полей КОД и НАЗВАНИЕ, то я делаю не так и цель моего вопроса была разобраться, чем это мне может грозить в дальнейшем.
С нормализацией вроде разобрались
Цитата Сообщение от alvk Посмотреть сообщение
В целом нормализации вещь хорошая и правильная, но переусердствовать с ней не нужно
Полностью согласна.
Приведу пример: на моем предприятии несколько тысяч работников, помимо должности есть еще категория персонала (общецеховый, оперативный, ремонтный). Я делаю таблицу КАТЕГОРИЯ с перечнем значений. По логике Ameli я должна в эту таблицу добавить поле КОД, которое связать с соответствующим полем в таблице ПЕРСОНАЛ. Я же в таблице ПЕРСОНАЛ сразу делаю поле КАТЕГОРИЯ и подстановку через форму, но сама таблица КАТЕГОРИЯ в связях НЕ УЧАСТВУЕТ. В итоге схема данных получается проще, в ней только основные таблицы.
Собственно вопрос: чем это хуже варианта со связями? Изменения вносить можно, форму при желании тоже можно создать...
0
 Аватар для Ameli
2096 / 1172 / 39
Регистрация: 05.11.2009
Сообщений: 1,605
19.03.2012, 14:06  [ТС]
Цитата Сообщение от Pelena Посмотреть сообщение
чем это хуже варианта со связями?
на схему они добавлены только для полноты картины, чтоб было видно все таблицы. Мне кажется, так нагляднее и видно все сразу. Это ж учебный пример, не эталон, а просто пример для того, чтоб научиться делать связи и понимать, почему, как и что связано.
Цитата Сообщение от Pelena Посмотреть сообщение
осмелюсь все-таки еще раз задать вопрос, на который ответа не прозвучало
Честно говоря, я сначала подумала, что речь идет о том, чтоб не создавать эти таблички вовсе, хранить значения в списках подстановок. Поэтому и рассказываю о том, что бывает надо изменить значения подстановок
1
2644 / 1343 / 256
Регистрация: 25.10.2010
Сообщений: 2,196
19.03.2012, 14:22
Ameli, спасибо. Отлегло... А то я уж переделывать собралась
0
3544 / 1118 / 94
Регистрация: 13.03.2011
Сообщений: 1,513
19.03.2012, 23:45
Лучший ответ Сообщение было отмечено как решение

Решение

Цитата Сообщение от Pelena Посмотреть сообщение
Я же в таблице ПЕРСОНАЛ сразу делаю поле КАТЕГОРИЯ и подстановку через форму, но сама таблица КАТЕГОРИЯ в связях НЕ УЧАСТВУЕТ. В итоге схема данных получается проще, в ней только основные таблицы.
Собственно вопрос: чем это хуже варианта со связями? Изменения вносить можно, форму при желании тоже можно создать...
Прошло некоторое время после запуска программы в эксплуатацию и обнаружилось, что в названии некоторой категории допущена неточность или пришло ЦУ изменить наименование какой-то категории. При вашем раскладе прийдется срочно составлять запросы на изменение во всех таблицах, в которых фигурируют категории. А если бы вы сделали связь, указав каскадное обновление связанных полей, то изменение нужно было бы сделать в одном месте, в вашем справочнике категорий.
3
118 / 118 / 10
Регистрация: 12.05.2010
Сообщений: 1,207
20.03.2012, 02:04
Как я понял, в поле КАТЕГОРИЯ хранится не текстовое значение, а код. Сами текстовые значения хранятся в отдельной таблице. Просто эта таблица не связана с таблицей ПЕРСОНАЛ.
0
Эксперт MS Access
 Аватар для alvk
7459 / 4592 / 302
Регистрация: 12.08.2011
Сообщений: 14,383
20.03.2012, 05:05
Цитата Сообщение от minob Посмотреть сообщение
А если бы вы сделали связь, указав каскадное обновление связанных полей, то изменение нужно было бы сделать в одном месте, в вашем справочнике категорий.
Поменялось одно из слов "Да" и "Нет"? Если уж вы решили передёргивать, то я тоже буду.
0
3544 / 1118 / 94
Регистрация: 13.03.2011
Сообщений: 1,513
20.03.2012, 06:13
Цитата Сообщение от Михайло Посмотреть сообщение
Как я понял, в поле КАТЕГОРИЯ хранится не текстовое значение, а код. Сами текстовые значения хранятся в отдельной таблице. Просто эта таблица не связана с таблицей ПЕРСОНАЛ.
Я же понял с точностью до наоборот. Есть справочник Категорий, в котором хранятся только текстовые значения (коды отсутствуют). В связанных таблицах в таком случае, само-собой хранятся также текстовые значения. Вот изначальный вопрос
Цитата Сообщение от Pelena Посмотреть сообщение
Я не понимаю, зачем создавать такое количество таблиц с двумя полями типа КОД и НАЗВАНИЕ, почему нельзя НАЗВАНИЕ сразу поместить в связанную таблицу, особенно если оно состоит из одного слова?
Т.е. иными словами вопрос Pelena сводится к вопросу об использовании естественных ключей.
Чуть позже Pelena начала сомневаться в целесообразности наличия связей в схеме данных по естественным первичному и внешнему ключам.
Если я не прав, то пусть Pelenа меня поправит.

Добавлено через 7 минут
Цитата Сообщение от alvk Посмотреть сообщение
Поменялось одно из слов "Да" и "Нет"? Если уж вы решили передёргивать, то я тоже буду.
Не напускайте тумана, изъясняйтесь доходчивее, так, чтобы даже я, который в танке , понял, о чем вы говорите.
0
Эксперт MS Access
 Аватар для alvk
7459 / 4592 / 302
Регистрация: 12.08.2011
Сообщений: 14,383
20.03.2012, 07:00
Цитата Сообщение от minob Посмотреть сообщение
понял, о чем вы говорите.
А что же тут непонятного? Допустим у вас автопарк, вы учитываете к примеру движение автобусов, в каждом автобусе у вас на текущий момент может быть только две единицы штата - водитель и кондуктор. По вашему мнению нужна таблица с ними и код в таблице фактов.
По моему мнению в таблице фактов может вполне присутствовать наименование единицы, ибо в обзримом будущем не предвидится, чтобы водитель стал называться "водилой" скажем. Но, если вдруг, кому-то что-то и правда стукнет - update 2 минуты и всё.
Источник поля со списком на форме - сгруппированное поле из таблицы.
Так?
1
2644 / 1343 / 256
Регистрация: 25.10.2010
Сообщений: 2,196
20.03.2012, 07:05
Цитата Сообщение от minob Посмотреть сообщение
Есть справочник Категорий, в котором хранятся только текстовые значения
Да, именно текстовые


Цитата Сообщение от minob Посмотреть сообщение
пришло ЦУ изменить наименование какой-то категории
Для категорий это вряд ли, но мысль понятна. Если есть вероятность изменений, то её надо предусмотреть


Цитата Сообщение от minob Посмотреть сообщение
указав каскадное обновление связанных полей
Каскадное обновление не всегда требуется при изменении значения в справочнике (если абстрагироваться от категорий)
То есть опять-таки все зависит от конкретного справочника
0
3544 / 1118 / 94
Регистрация: 13.03.2011
Сообщений: 1,513
20.03.2012, 07:35
Цитата Сообщение от alvk Посмотреть сообщение
Допустим у вас автопарк, вы учитываете к примеру движение автобусов, в каждом автобусе у вас на текущий момент может быть только две единицы штата - водитель и кондуктор. По вашему мнению нужна таблица с ними и код в таблице фактов.
По моему мнению в таблице фактов может вполне присутствовать наименование единицы, ибо в обзримом будущем не предвидится, чтобы водитель стал называться "водилой" скажем. Но, если вдруг, кому-то что-то и правда стукнет - update 2 минуты и всё.
О коде я нигде не говорил, т.к. вопрос о естественных, суррогатных ключах - дюже холиварный. А вот табличку с наименованием штатной должности сделал бы, так как ленив и мне было бы лень клепать запрос, когда можно вместо 2 мин. за пару секунд выполнить изменение значения поля в справочнике.
Цитата Сообщение от alvk Посмотреть сообщение
А что же тут непонятного?
Ну вот, когда захотите, то можете и без тумана обходиться.
1
Эксперт MS Access
 Аватар для alvk
7459 / 4592 / 302
Регистрация: 12.08.2011
Сообщений: 14,383
20.03.2012, 07:54
Цитата Сообщение от minob Посмотреть сообщение
когда можно вместо 2 мин. за пару секунд выполнить изменение значения поля в справочнике.
в следующем веке.
0
3544 / 1118 / 94
Регистрация: 13.03.2011
Сообщений: 1,513
20.03.2012, 08:02
Цитата Сообщение от Pelena Посмотреть сообщение
Каскадное обновление не всегда требуется при изменении значения в справочнике (если абстрагироваться от категорий)
Т.е. до определенного момента времени действовует одно наименование категории, а после него иное.
В таком случае (имхо) вводил бы в справочник новое наименование, а старое отмечал, как выбывшее, с помощью дополнительного логического поля.

Добавлено через 3 минуты
Цитата Сообщение от alvk Посмотреть сообщение
в следующем веке.
Вообще-то разработчику, при граммотно написанном приложении, даже заморачиваться не прийдется по поводу каких-либо изменений в справочниках.
0
39 / 39 / 0
Регистрация: 02.03.2012
Сообщений: 91
20.03.2012, 08:06
стиль, содержание СТАТЬИ и дискуссии никакого отношения к начинающим не имеют
для начинающих нормальные формы - это то же, что космогонические гипотезы и общая теория относительности для пятикласника.
Мне думается, что стиль статьи должен быть похож на стиль Аленовой Н. изложения материала по хтмл (http://postroika.ru/), т.е для "чайников" с последующим развитием содержания статьи и переходом к более сложным вещам.
0
Эксперт MS Access
 Аватар для alvk
7459 / 4592 / 302
Регистрация: 12.08.2011
Сообщений: 14,383
20.03.2012, 08:10
Цитата Сообщение от minob Посмотреть сообщение
Вообще-то разработчику, при граммотно написанном приложении, даже заморачиваться не прийдется по поводу каких-либо изменений в справочниках.
Структурных надеюсь?

Цитата Сообщение от В.В.С. Посмотреть сообщение
для начинающих нормальные формы - это то же, что космогонические гипотезы
Тогда им нечего делать здесь. Если первокласник не выучил азбуку, то во втором классе ему делать нечего. К тому же всё уже разжёвано так, что и вправду какой-нибудь шестиклашка всё может освоить.
0
3544 / 1118 / 94
Регистрация: 13.03.2011
Сообщений: 1,513
20.03.2012, 08:15
Цитата Сообщение от alvk Посмотреть сообщение
Структурных надеюсь?
Подловили. Имелись ввиду изменения значений поля справочника, которые обсуждаются.
0
 Аватар для Ameli
2096 / 1172 / 39
Регистрация: 05.11.2009
Сообщений: 1,605
20.03.2012, 08:15  [ТС]
Цитата Сообщение от В.В.С. Посмотреть сообщение
стиль, содержание СТАТЬИ и дискуссии никакого отношения к начинающим не имеют
По поводу стиля: вроде бы старалась все понятно описать, доступным языком, например
Нормальная форма – совокупность требований, которым должно удовлетворять отношение в реляционной модели данных, чтобы избежать избыточности, которая может привести к логически ошибочным результатам выборки или изменения данных.
Проще говоря, это правила, которые позволяют сделать структуру бд эффективной и избежать трудностей в работе с ней в дальнейшем.
т.е. с объяснениями.
По поводу содержания: посмотрим правде в глаза: большинство задающих вопросы на нашем форуме - студенты. А им как раз надо знать теорию, т.е. нормальные формы, ER-диаграммы и т.д. Статья направлена на большинство, т.е. на них.
По поводу дискуссий: а вот дискуссии как раз не для начинающих, а для продвинутых пользователей, чтобы совместными усилиями создать материал для начинающих. Здесь каждый может высказать свое мнение
2
Эксперт MS Access
 Аватар для alvk
7459 / 4592 / 302
Регистрация: 12.08.2011
Сообщений: 14,383
20.03.2012, 08:20
Цитата Сообщение от minob Посмотреть сообщение
Подловили. Имелись ввиду изменения значений поля справочника, которые обсуждаются.
Тобишь мы не будем справочники заполнять, которые мы рассматриваем? Ну так я и говорю об этом. И смысла в их существовании также не вижу.
0
 Аватар для Ameli
2096 / 1172 / 39
Регистрация: 05.11.2009
Сообщений: 1,605
20.03.2012, 08:24  [ТС]
Цитата Сообщение от alvk Посмотреть сообщение
По моему мнению в таблице фактов может вполне присутствовать наименование единицы, ибо в обзримом будущем не предвидится, чтобы водитель стал называться "водилой" скажем. Но, если вдруг, кому-то что-то и правда стукнет - update 2 минуты и всё.
Источник поля со списком на форме - сгруппированное поле из таблицы.
Так?
А если ты базу сделал и отдал заказчикам - берите, пользуйтесь. Они каждый раз к тебе будут обращаться, если им что-то в справочниках поменять надо будет? А так у них нормальные справочники есть, зашли, поменяли.
Тем более, тут еще поспорить можно, что проще - создать изначально справочники или апдейтить потом значения в таблице
2
3544 / 1118 / 94
Регистрация: 13.03.2011
Сообщений: 1,513
20.03.2012, 08:34
Цитата Сообщение от alvk Посмотреть сообщение
Тобишь мы не будем справочники заполнять, которые мы рассматриваем? Ну так я и говорю об этом. И смысла в их существовании также не вижу.
Если сильно хочется по каждому чьему-то пуку клепать запросы, то и не создавайте справочники, тогда и заполнять будет нечего. Я же препочитаю создавать, а процессом ввода информации пусть занимаются пользователи.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
20.03.2012, 08:34

Скрипт для переноса структуры таблиц базы данных клиенту
Здравствуйте! У меня MSSQL Server 2012. Подскажите, как мне создать скрипт для переноса структуры моей базы (достаточно только структур...

Вывод статьи по id из базы данных
Всем Доброго времени суток! Я хочу реализовать вывод 1 статьи по нажатию ссылки подробнее,примерно так <? ...

Базы данных - книги,статьи
Хочу разобраться,что это за базы данных и как их строить. Кто может посоветовать книги/статью по этому для полных профанов по БД ?

Статьи через php и базы данных
Всем привет. Я вот посмотрел на сайтах и увидел, что менюшки ссылаются на такие вот ссылки: ...

Используя синтаксис структуры составить программу для заполнения данными базы данных Рецепты
Используя синтаксис структуры составить программу для заполнения данными базы данных Рецепты со следующими полями: КодРецепта,...


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Из невошедшего на форум (диалог с ИИ-гугла)
zorxor 29.07.2026
А вот, что интересно, сказал мне ИИ-гугла: Этот текст — эмоциональный пост пользователя под ником zorxor на интернет-форуме (вероятно, посвященном мистике, непознанному или альтернативной науке). . . .
Был праздник вчера, а я и не знал.
kumehtar 28.07.2026
27. 07. 2026г. Intel Core 2 Duo исполнилось 20 лет Новости компьютерного мира и их обсуждение (4) Салют, шампанское, овации! :drink:
Нейтральные знания, чистый код - бла-бла-бла-бла, на самом деле кликбейт и самореклама, плагиат, и вот почему
Hrethgir 27.07.2026
То-есть отклонение такой публикации говорит само за себя, и пусть только возьмут на вооружение после отклонения публикации - это будет чистейшим актом плагиата. Отклонял Хабр. Дословно, отклонённая. . .
тв 16 бой ии
anaschu 27.07.2026
Великий Перелом ИИ: Как уравнения ОДУ Radau дожали цензурные фильтры Алисы Фиксируем в мемофонде Теории Всего беспрецедентный факт в истории ИИ-зондирования. В затяжном многораундовом. . .
мв 15. непроверенное, возможно, глюк
anaschu 27.07.2026
НАУЧНО-АНАЛИТИЧЕСКИЙ ОТЧЕТ. РАЗДЕЛ 1. 1: «НАУКА» (РАСШИРЕННАЯ СТЕХИОМЕТРИЧЕСКАЯ И ГЕНЕТИЧЕСКАЯ ВЕРСИЯ)Тема: Теоретическое обоснование инвариантности 19-мерного тензорного ядра непрерывных ОДУ и. . .
Очистка реквизитов и табличных частей документа при копировании (вариант 2)
Maks 26.07.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРаботу", разработанного в КА2. Задача: Заменить алгоритм запрета копирования документов для сотрудников с ролью "Стажер",. . .
Доктрина интенционального знания - Доктрина для портала "Срез".
Hrethgir 25.07.2026
Может найдётся кто захочет оценить доктрину. . . Написания правил участия для меня роскошь, требующая лимита времени, поэтому все сообщения не прошедшие модерацию будут видны только участникам портала,. . .
сукцессия 44. Решил подать на припринт в межународные сервисы препринтов. Но нужно одобрение от ученых
anaschu 25.07.2026
Английский вариант. Пока кто то не одобрит мою личность, мне не получиться это опубликовать на препринте. Но заявку на публикацию статьи я сегодня подам.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru