Для тех кто только начал работать с базами данных

Автор Pu1s, 29 июня 2011, 17:32

0 Пользователи и 1 гость просматривают эту тему.

Pu1s

Добрый день форумчане. Если Вам не сложно, то помогите разобраться с работай баз данных. Я думаю данная тема будет полезна для многих. Кое какую литературу прочитал, но так и осталось многое непонятно.
1. Я создал несколько таблиц, сделал связи. Вопрос заключается в том, как сделать так, чтоб при заполнении столбца по которому сделана связь, автоматически заполнялись столбцы в другой таблице?

RFJ

Зачем?
Автоматическое заполнение предполагает наличие известной зависимости между вводимыми данными и автоматически добавляемыми, т.е. приводит к избыточности вводимых данных.

Pu1s

Смысл в том, что имеется несколько таблиц и во все этих таблицах первые 3 столбца одинаковы. И чтоб не заполнять во всех одно и тоже, будет создана таблица под названием "СПРАВОЧНИК КОДОВ" из которой автоматом должны браться эти 3 столбца.

RFJ

Цитата: Pu1s от 29 июня 2011, 16:43имеется несколько таблиц и во все этих таблицах первые 3 столбца одинаковы
Такого в принципе быть не должно - это неправильно.

Pu1s

Может я не совсем понимаю смысла баз данных... Но как я понимаю, БД состоит из кучи таблиц, которые имеют разные данные. И имеется таблица, которая заполняется из всех этих данных. Вот для меня и существует первая задача, заполнять таблицу_1 так как заполняется таблица_2 (Справочник)

RFJ

К сожалению, совсем не понимаете.
Все неправильно.
Вам следовало бы изучить введение в базы данных.

VlhOwn

У Вас должна быть только одна таблица "Справочник". В этой таблице должно быть специальное поле - ID (можно считать это номером записи). Значения этого поля должны быть уникальными, само поле - первичным ключом.
Далее, во всех других таблицах, где Вам требуется иметь элементы справочника, Вы вставляете поле со ссылкой (с номером) соответствующей записи в справочнике.

OOo Base не требует неповторяемости данных, но делать так обязательно!!!
Подумайте сами - любое обновление справочника в Вашем варианте потребует редактирования всех таблиц, где есть элементы справочника, а в предлагаемом - только одной. Это элементарное базовое требование обеспечения целостности и непротиворечивости данных в СУБД.

spitfirerr

Не могу сообразить как расставить зависимости. Задача: База данных по монтажам (к примеру бригада монтажников выезжает по адресу где монтируют оборудование в подъезде - натягивают веревку, вешают бельё, прищепливают бельё прищепками
Таблицы - 1. Адреса (где монтируется оборудование, адрес монтажа с точностью до подъезда)
               2. Бригады (минимум информации, имя бригадира и номер телефона)
               3. Оборудование (Саааамое мне не понятное Оо...  Как сделать так чтобы учитывалось что мол по улице Главной дом 10 бригада Васи установила 2 веревки 10 едениц
                   белья и 40 прищепок.

JohnSUN

Добро пожаловать на форум, spitfirerr!
Уточнение: прищепки номерные? Или пригоршню из общей коробки захватили и поехали на объект?
Ну, в смысле, в перечне будут только расходные материалы, которые можно просто в единицах измерить, или еще и оборудование, которое поштучно покупается и отдается?

Так-то оно не сложно получается: таблица нарядов (с адресом объекта и именем Васи, датой выезда и прочими атрибутами) и подчиненная - один ко многим - материалов (что ушло и сколько)
Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне

neft

#9
Цитата: JohnSUN от 18 ноября 2011, 17:35
Так-то оно не сложно получается: таблица нарядов (с адресом объекта и именем Васи, датой выезда и прочими атрибутами) и подчиненная - один ко многим - материалов (что ушло и сколько)

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

spitfirerr

Спасибо. Будет расходка и оборудование с серийниками но все расходуется по разному к примеру 10 прищепок и 2 "оборудования с серийниками" (ну соответственно наименований значительно больше)
Тоесть в одной таблице создать столбцы (айди/адрес(каждое уточнение адреса в отдельный столбец)/дата/бригада/) и получается 2 таблицы с расходкой и оборудованием. А разве разные бригады не надо в отдельную таблицу вынести? или это усложнит дело?
А как тогда?

JohnSUN

#11
Ну, у меня что-то такое нарисовалось... С поправкой на предупреждение neft и с необходимостью вести учет по прищепкам и веревкам (с мылом) отдельно - получится не намного, но сложнее

PS. Чего-то я тормознул: прилепил картинку, вместо того чтобы саму .odb отдать... Меньше места потратил бы... В пять раз...

[вложение удалено Администратором]
Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне