Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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.51 MB
Время: 0.084 c
1-1158731446
WhiteBarin
2006-09-20 09:50
2006.11.05
Работает ли Sleep в реальном времени?


2-1161155855
Alex_C
2006-10-18 11:17
2006.11.05
Как правильно написать свой компонент?


15-1160918158
PHPDeveloper
2006-10-15 17:15
2006.11.05
издатели дисков на территории СНГ


2-1161529460
susergey
2006-10-22 19:04
2006.11.05
как из моей программы организовать отправку e-mail


1-1159166924
aKirill.INFO
2006-09-25 10:48
2006.11.05
Формат фала msm и msi