Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.11.05;
Скачать: [xml.tar.bz2];

Вниз

Редактирование БД   Найти похожие ветки 

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.5 MB
Время: 0.047 c
15-1160890676
Kair+
2006-10-15 09:37
2006.11.05
Вопрос по C++


2-1161620422
Alral
2006-10-23 20:20
2006.11.05
Определение нажатия клавиши.


3-1157607756
вп
2006-09-07 09:42
2006.11.05
Использование ADODataSet, обновление данных


4-1150985614
PRT
2006-06-22 18:13
2006.11.05
Popup в Run - time


2-1161328654
Автоматчик
2006-10-20 11:17
2006.11.05
Помогите написать проаграмму для стрелки барометра.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский