Текущий архив: 2006.11.05;
Скачать: CL | DM;
ВнизРедактирование БД Найти похожие ветки
← →
Mb © (2006-10-18 18:51) [0]Краткий смысл БД - учет проб масла вертолетного парка.
Формат - Paradox.
Главная таблица Vs:
VsID - уникальный идентификатор вертолета, первичный ключ.
VsNum - номер вертолета.
имеет связь один ко многим с
отдельной таблицей Move:
MoveID - уникальный идентификатор, первичный ключ.
MVs - Код номера борта из поля VsNum из таблицы Vs
MDvL - Код номера левого двигателя из поля DvID из таблицы Dv
Mproba1 - Код номера пробы из поля ProbaId из таблицы Proba
MDvP - Код номера правого двигателя из поля DvID из таблицы Dv
Mproba2 - Код номера пробы из поля ProbaId из таблицы Proba
MRed - Код номера редуктора из поля RedID из таблицы Reductor
Mproba3 - Код номера пробы из поля ProbaId из таблицы Proba
таблица Proba:
ProbaID - уникальный идентификатор, первичный ключ.
PSodFe - Содержание железа
PDate - дата
таблица Dv:
DvID - уникальный идентификатор, первичный ключ.
DvNum - Номер двигателя
таблица Reductor:
RedID - уникальный идентификатор, первичный ключ.
RedNum - Номер редуктора
DataBase, два DataSource (1 для VS и 2 для Move) и 5 TTable
(Vs, Move, Red, Proba, Dv) расположены в DataModule1.
На главной форме расположены 3 DBGrid:
На 1 - набор бортовых номеров вертолетов.
на 2 - номера агрегатов (левый двигатель, правый дв. и редуктор)
на 3 - даты и содержание железа в масле соответсвующих агрегатов
Выбираем в 1 борт, во втором отбражаются его агрегаты в 3 данные проб.
Для Move созданы подстановочные поля (для отображения в DBGrid №2 номеров агрегатов и в DBGrid №3 кол-ва железа и дат).
Строится график в DBChart (содержание по дате). Эти части работают.
Для изменения/вставки записей вызывается Form2 на ней 10 DBEdit (по 3 для агрегата: номер, дата, содержание) и номер борта.
ВОПРОС: куда и как прикрутить Form2.DBEdit-ы чтобы можно было редактировать их содержимое и сохранить по нажатию ОК.
Для номера борта если DataSource - DataSource1, DataField - VsNum то оно редактируется, с подстановочными полями номеров, дат не редактируются.
Как организовать каскадное редактирование, удаление, вставку
применительно к этой системе? Если можно поподробнее.
Перерыл около десятка книг, но подробных примеров или объяснений нет, в инете аналогично.
← →
Shopot © (2006-10-18 21:14) [1]Поподробнее объясни. Трудно понять что конкретно тебе нужно.
Как соединить DBEdit с полем таблицы БД? или
Как делать подстановочные поля, связи типа Master-Detail для
каскадного удаления и редактирования?
Каким компонентом пользуешься TTable или TQuery?
← →
Sergey13 © (2006-10-19 08:24) [2]> [0] Mb © (18.10.06 18:51)
Move - это полеты? Если да, то они каждый раз с новыми двигателями/редукторами что-ли летают?
← →
Anatoly Podgoretsky © (2006-10-19 09:02) [3]Парадокс не поддерживает, кроме того если Парадокс, то прощай полеты, здраствуй земля.
← →
Sergey13 © (2006-10-19 10:04) [4]ИМХО, если нормально спроектировать БД, нужда в каскадности отпадет сама собой.
← →
Zacho © (2006-10-19 10:20) [5]Sergey13 © (19.10.06 10:04) [4]
+1
К тому же, imho, каскадный update/delete - потенциальная "бомба". Легкое движение руки - и пол-базы похерилось :)
← →
MsGuns © (2006-10-19 10:38) [6]>Anatoly Podgoretsky © (19.10.06 09:02) [3]
>Парадокс не поддерживает, кроме того если Парадокс, то прощай полеты, здраствуй земля.
Парадокс нас с тобою переживет. Сколько б мы не пели ему отходную ;))
← →
Mb © (2006-10-19 20:48) [7]Смысел: по налету (через каждые 25 часов) берутся пробы.
Для удобства хранения и отображения их делается данная БД.
Строится графичек содержания в г/тонну, при достижении определенного
содержания решается вопрос о дальнейшей эксплуатации данного агрегата.
Как соединить DBEdit с loocup полем таблицы Move, чтобы можно было редактировать его и редактировать записи в дочерних таблицах атоматически?
Как делать подстановочные поля, связи типа Master-Detail для
каскадного удаления и редактирования?
Пользуюсь TTable.
А как без каскадности? В одной табличке одни агрегаты, в другой другие,
в третьей бортовые номера. Вроде как правильно. Или можно еще как?
Двигатель или редуктор может быть переставлен
несколько раз за межремонтный ресурс по дефекту или по другим причинам.
В Move оно все и видно когда, какой номер, сколько железа
а VS выбираем номер вертолета.
← →
Sergey13 © (2006-10-20 08:43) [8]> [7] Mb © (19.10.06 20:48)
1. У тебя однозначно все вертолеты имеют (могут иметь) только такую комплектацию: правый и левый двигатели + 1 редуктор?
2. Все таки двигатель и редуктор - это принадлежность вертолета, а не полета.
3. Если по агрегатам реально хранится только номер, то выносить движки и редукторы в справочник в данной задаче мне представляется мало целесообразным. Если только есть (или планируются) связанные задачи по ремонту и учету этих агрегатов.
4. Я бы завел еще таблицу - "комплектация вертолета", куда бы вынес связь борта и агрегатов. Если она не жесткая (см. вопр. 1), то нужна еще пара таблиц для ее описания.
5. В таблицу замеров писал бы просто ссылку на борт и результаты. Опять же если комплктация не жесткая, то немного сложнее, но смысл тот-же.
← →
Anatoly Podgoretsky © (2006-10-20 08:50) [9]
> Парадокс нас с тобою переживет. Сколько б мы не пели ему
> отходную ;))
Архангельский и компанияю помогут.
← →
Mb © (2006-10-20 12:37) [10]все вертолеты имеют только комплектацию: правый и левый двигатели + 1 редуктор.
Связь борта и агрегатов делается в таблице Move.
Об интерфейсе:
На главной форме расположены 3 DBGrid:
На 1 - набор бортовых номеров вертолетов.
на 2 - номера агрегатов (левый двигатель, правый дв. и редуктор)
на 3 - даты и содержание железа в масле соответсвующих агрегатов
Первый DBGrid подключен к полям Vs, второй и третий DBGrid к полям Move.
DataBase, два DataSource (1 для VS и 2 для Move) и 5 TTable
(Vs, Move, Red, Proba, Dv) расположены в DataModule1.
Выбираем в 1 борт, во втором отбражаются его агрегаты в 3 данные проб.
Для Move созданы подстановочные поля (для отображения в DBGrid №2 номеров агрегатов и в DBGrid №3 кол-ва железа и дат).
Могу выслать исходники, может более понятно будет.
← →
Sergey13 © (2006-10-20 13:09) [11]> [10] Mb © (20.10.06 12:37)
Не от интерфеса плясать надо, а от проектирования БД.
← →
Mb © (2006-10-20 15:20) [12]И как его перепроектировать?
← →
Sergey13 © (2006-10-20 15:26) [13]> [12] Mb © (20.10.06 15:20)
Кого "его", интерфейс? Оставь его в покое пока. Займись БД. Как? Свое мнение я написал в
> [8] Sergey13 © (20.10.06 08:43)
← →
Mb © (2006-10-20 20:00) [14]Моя БД примерно так и состоит
таблица Move и есть комплектация вертолета.
Хотя наверное можно обойтись и одной (объединив VS и Move)?
У меня вопрос: Как соединить DBEdit с подстановочным
полем таблицы Move и редактировать их, и автоматически (каскадно?) редактировать записи в подчиненных к Move таблицах?
Страницы: 1 вся ветка
Текущий архив: 2006.11.05;
Скачать: CL | DM;
Память: 0.49 MB
Время: 0.043 c