Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
Архив форумов ЦИТФорума
Море(!) вопросов - Море(!) ответов
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 
Как правильно задавать вопросы

Помогите создать нужную структуру БД.

 
Перейти:  
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Программирование
Предыдущая тема :: Следующая тема  
Автор Сообщение
ramz



Зарегистрирован: 21.11.2001
Сообщения: 141

СообщениеДобавлено: Чт Фев 27 2003 21:33    Заголовок сообщения: Помогите создать нужную структуру БД. Ответить с цитатой

Доброго времени суток.
Пишу на Builder 6 под InterBase 6.5

Хочу иметь вот такой интерфейс в своем приложении:
На форме есть три комбобокса.
В первом комбобоксе - список марок автомобилей, например - Mersedes, Ford, Toyota, etc.
Если нету нужной - правый клик на комбобоксе - меню "Добавить".
После выбора нужной марки, во втором комбобоксе отображается список моделей указаной марки, например если выбрали
марку Ford, то список = Kadet, Sierra, Scorpio, etc. Тоже, если нету нужной - добавить её.
После выбора нужной модели, в третьем комбобоксе отображается список цветов указаной модели. Тоже возможност добавления.
После выбора всех значений, получаем, например Ford->Sierra->Синий.
Теперь можно ввести количество этих синих фордов сиерра (на форме в эдитбоксе), нажать на кнопку, чтбы все записалось в базу.
Конечно же, пример примитивный, но это только описание, чтобы понятней было чего я хочу получить.
Может быть не комбобоксы, а как в 1С, в справочнике. Там все это делается в гриде, только я не знаю как ловить даблклик
на строке в гриде.
Вопрос 1 такой:
Какой должна быть структура базы (сколько таблиц, какие поля в них должны быть), чтобы получить такой справочник с машинами.
Я это пытался делать так:
таблица AUTOMOBILES:
- auto_id (integer)
- marka_id (integer)
- model_id (integer)
- color_id (integer)
таблица MARKS
- marka_id
- marka_name
таблица MODELS
- marka_id
- model_id
- model_name
таблица COLORS
- model_id
- color_id
- color_name
Смысл надеюсь понятен.
Таким образом поле auto_id содержит информацию о всех параметрах автомобиля.
И это поле можно использовать для однозначной идентификаци автомобиля в таблице SKLAD:
- data
- auto_id
- amount
Вопрос 2 такой:
Какой должна быть таблица движения SKLAD, чтобы была возможность получить отчет типа, сколько у нас всех
Ford-ов, или сколько Sierr, или сколько всех машин с цветом = синий, или вообще - сколько Ford-ов синего цвета.
Отчет будет формироваться на другой форме с теми же комбиками - выбираешь в первом комбике марку,
жмешь кнопку "Сформировать" и получаешь в гриде список всех марок...
Но как получить из моей таблицы отчеты, описаные выше ? Ведь мы не сможем "отфильтровать" эту таблицу по "цвету" или по "марке".

Вообщем приветствуются любые высказывания и примеры по сабжу.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
mmm



Зарегистрирован: 11.04.2003
Сообщения: 6

СообщениеДобавлено: Пт Фев 28 2003 00:01    Заголовок сообщения: Re: Помогите создать нужную структуру БД. Ответить с цитатой

mojet vot tak?

Automobiles
-----------
- auto_id (integer) (PK)
- marka_id (integer)
- model_id (integer)
- color_id (integer)

MARKS
-----
- marka_id (PK)
- marka_name

MODELS
------
= model_id (PK)
- model_name

COLORS
------
- color_id (PK)
- color_name

SKLAD
-----
sklad_ID (PK)
auto_id
amount

SELECT Count(auto_id)
FROM SKLAD
WHERE auto_id IN(SELECT auto_id
FROM AUTOMOBILE
WHERE marka_id=...)
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Программирование Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2002 phpBB Group
Русская поддержка phpBB

 

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 6608306, ICQ 232284597
Пресс-релизы — pr@citforum.ru
Послать комментарий
Информация для авторов
This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2006 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...