![]() |
|
#1
|
||||
|
||||
![]() Ребята вопрос такой - имееться несколько машин
например Митсубиши Ниссан Мазда у этих машин куча информации например Митсубиши Лансер Митсубиши Эклипс Митсубиши Галант Мазда RX8 Мазда RX7 Ниссан 350z Nissan Altima короче машин полно и информации о них тоже - тперь вопрос такой надо все машини отдельно загружать в базу или есть некий другой способ чтоб потом при поиске(с фильтром) не было проблемм??? например одинаковых моделей Мазды пять штук и они отличаються только цветами - их надо все ввести в базу??? или есть какой то другой способ??? наверно вопрос дуратский - просто я только только учусь программировать использованием БД....заранее извините....и спасибо огромное Нет ничего не возможного. Вопрос только во времени... |
#2
|
|||
|
|||
![]() Внимательно читаем любую книжку по теории БД - про нормальные формы. И будет тебе счастье.
Тебе нужны 4 таблицы (предполагаем, что ты заносишь в БД конкретные машины, каждая со своим VIN'ом и т.д.): - Color (ID, Name) - названия цветов - CarType (ID, Name) - Фактически - производители - CarModel (ID, CarTypeID, Name) - модель, CarTypeID - ссылка на производителя - Car (ID, CarModelID, ColorID, VIN, Price, ...) - описание машины, CarModelID - ссылка на модель, ColorID - ссылка на цвет. Получение списка будет производится путем различных группировок и аггрегирования. Фильтр реализуется путем подгрузки нужных справочников в ComboBox'ы и в дальнейшем через WHERE указание нужных параметров запроса. |
#3
|
||||
|
||||
![]() Посоветуй имменную книгу - название книги...пожалуста очень хочу это реолизовать....
Нет ничего не возможного. Вопрос только во времени... |
#4
|
||||
|
||||
![]() Я правильно понимаю что надо для каждой машины создать отдельную таблицу что то в роде этого
Mazda- --Модель --Цвет --Год выпуска Nissan- --Модель --Цвет --Год выпуска так вить и их сохранять в отдельные файлы? Я весь инет нарыл нигде нормальной информации нету - как соединить таблицы....в принципе я структуру знаю как оно будет работать- примерно так При поиске выбераем марку машины и грузиться инфа на DBGrid с его таблицы....просто как в конце обеденить модели машин в одно целое за любой совет буду очень благодарен... Нет ничего не возможного. Вопрос только во времени... |
#5
|
||||
|
||||
![]() lmikle все правильно написал!
Т.е. тебе надо 4 таблицы: 1-таблица цветов, 2-таблица марка машины, 3-таблица модель, 4- общая таблица Т.е. в общей таблице хранятся ссылки на другие таблицы. Пример: Код:
1 таблица: id color 1 red 2 gren 2 таблица: id type 1 mazda 2 opel 3 таблица: id TypeId Model 1 1 626 (т.е. мазда 626) 2 2 kadet (т.е. опель кадет) 3 1 6 (мазда 6) 4 таблица: id ModelID ColorId VIN 1 3 1 45fgdf (т.е. мазда 6 красного цвета с винномером 45fgdf) 2 2 2 eeeee (т.е. опель кадет зеленого цвета с винномером eeee) |
#6
|
||||
|
||||
![]() Цитата:
|
#7
|
||||
|
||||
![]() Ребята всем огромное спасибо - вроде получаеться - но у мя есть вопрос
AllTable1 + AllSources1 - это общая таблица TypeTable1 + TypeSources1 - таблица с марками машин ColorTable1 + ColorSources1 - таблица с цветами (оно связано с таблицей Марка машин) Теперь в общей таблице такой результат получился Цитата:
в списке 4 машины Мазда с разными цветами и 2 машины Ауди проблема в том что - когда я подключаю Lookupcombobox1 у него в списке я получаю не имена машин а Код:
1 1 1 1 2 2 как сделать чтоб вместо этого отображались название машин...чтоб вместо 4 - "1" стояло одна строка Мазда а вместо 2 - "2" строка Ауди - а не отображал 4строки Мазды и 2строки Ауди??? Нет ничего не возможного. Вопрос только во времени... |
#8
|
||||
|
||||
![]() Суть этого в том что - я хочу сделать поиск по тем приметам которые имеються в базе - если в базе только Мазда и Ауди то зачем мне грузиться в LookupCombobox1 остальные марки
Нет ничего не возможного. Вопрос только во времени... |
#9
|
||||
|
||||
![]() Ребят ну помогите а...застрял в одной проблемой
В таблице TypeTable1 у меня куча марок машин - при добавлении информации LookupCombobox1 подключаеться к нему теперь проблема в том - как сделать поиск с теми марками машин которые имеються в общей таблице?????? Нет ничего не возможного. Вопрос только во времени... |
#10
|
|||
|
|||
![]() Вот код, который возвращает только те записи из таблицы TypeTable1, ID'ы которых есть в основной таблице:
Код:
SELECT * FROM TypeTable1 T1 WHERE T1.ID IN (SELECT DISTINCT TypeID FROM Cars) |
#11
|
|||
|
|||
![]() SELECT * FROM TypeTable1 T1 LEFT JOIN Cars ON T1.ID = Cars.TypeId Where not IsNull(Cars.TypeId)
с одним селектом будет быстрей ![]() |
#12
|
||||
|
||||
![]() Спасибо ретята - помогло - но остлся одна проблемка - а как сделать тоже самое но с таблицой в котором Цвета машин
Мы получили в первой DBLookupCombobox1 список машин которые имеються в общей таблице - но нам еще нужно получить цвета тех машин которые мы уже добавили в DBLookupCombobox1 потому что если мы в DBLookupCombobox1 выбрали марку МАЗДА нам не нужно цвет номером 7 - А оно у меня стоит в списке - и это приводит результат поиска к нулю.... Как можно решить такую проблему? Нет ничего не возможного. Вопрос только во времени... |
#13
|
||||
|
||||
![]() Ссори не правильно выразился
способом который сказал lmikle я филтровал список с цветами и подключил результат л DBLookupCombobox2 теперь мне как сделать чтоб - при выборе марки машины из DBLookupCombobox1 на DBLookupCombobox2 загрузились те цвета которые имеються у марки машины название которой мы уже выбрали в DBLookupCombobox1? Нет ничего не возможного. Вопрос только во времени... |
#14
|
||||
|
||||
![]() Ссори не правильно выразился
способом который сказал lmikle я филтровал список с цветами и подключил результат л DBLookupCombobox2 теперь мне как сделать чтоб - при выборе марки машины из DBLookupCombobox1 на DBLookupCombobox2 загрузились те цвета которые имеються у марки машины название которой мы уже выбрали в DBLookupCombobox1? Нет ничего не возможного. Вопрос только во времени... |
#15
|
||||
|
||||
![]() Вот сам проект
Нет ничего не возможного. Вопрос только во времени... |