powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Пмогите со схемой БД для нетривиального проекта по выводу марок авто по кодам запчастей
24 сообщений из 24, страница 1 из 1
Пмогите со схемой БД для нетривиального проекта по выводу марок авто по кодам запчастей
    #36917295
Dmitry313
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте уважаемые форумчане. Вот встал вопросик по поводу архитектуры будущего приложения.
Даже скорее архитектуры данных.
Стоит нетривиальная задача написать приложение которое бы при вводе наименований автомобильных запчастей
выводила бы марку (список марок) автомобиля в котором используются совместно больше двух любых введенных
пользователем запчастей (запчасти вводятся по номеру).


Например в автомобиле FORD FOCUS используются запчасти с номерами:
933-3883(запчасть 1),
933-8282(запчасть 2),
933-2932(запчасть 3)
933-2139(запчасть 4)
933-2235(запчасть 5)
и т.д.
В автомобиле FORD C-MAX используются запчасти с номерами:
933-3283(запчасть 1),
933-2932(запчасть 2),
933-1112(запчасть 3)
933-2235(запчасть 4)
и т.д.
В автомобиле FORD FUSION используются запчасти с номерами:
933-3283(запчасть 1),
933-2932(запчасть 2),
933-1112(запчасть 3)
и т.д.

Допустим пользователь выбрал запчасти с номерами 933-3283, 933-2932 и 933-1112.
Так как две и больше (в данном случае три) из этих запчастей вместе находятся только в автомобиле марки FORD FUSION, то и программа должна вернуть данную
марку на первом месте, а на втором FORD C-MAX (так как там совместно используется две запчасти) или список марок автомобилей(если эти запчасти также используются вместе). У запчасти есть еще такие атрибуты
как их количество в марке автомобиля (например 2 противотуманки или 3 плафона (в шт.)) и стоимость запчасти.
Еще проблема в том, что запрашивать данные можно разными способами:
1) просто ввести номера запчастей и программа должна выдать марки автомобилей где хотя бы половина выбранных пользователем
запчастей использовалась совместно (для начала хотя бы больше двух наименований)
2) ввести номера запчастей и их количество и программа должна вывести где хотя бы половина выбранных пользователем
запчастей использовалась совместно причем в заданных или меньших количествах (но не больше);
3) ввести номера запчастей и ввести денежную сумму, и программа должна выдать те марки автомобилей? где хотя бы половина
выбранных пользователем запчастей использовалась совместно и сумма их стоимости не превышала бы заданную стоимость.

Результаты надо выводить в зависимости в порядке содержания запчастей в автомобиле (в порядке убывания совместно используемых запчастей)
Также в программе должна быть возможность забивать данные в базу в виде МАРКА АВТО, НОМЕРА ЗАПЧАСТЕЙ В ЭТОМ АВТО, КОЛИЧЕСТВО ЗАПЧАСТЕЙ В ДАННОМ АВТО, ЦЕНА ЗАПЧАСТИ.

Вопрос в том, как организовать хранение данных в БД для удобного их извлечения и занесения, чтобы удобно было реализовать описанную выше логику.
Уже весь мозг себе вынес....
Пока придумал только табличку в виде: МАРКА АВТО, НОМЕРА ЗАПЧАСТЕЙ КОТРОЫЕ ЕСТЬ В ЭТОМ АВТО. А далее full-text search по
этой табличке (по колонке с номерами запчастей) и вывод марки авто. Правда непонятно куда приделать количество и стоимость запчастей.....???
Буду рад если найдется умный человек и поможет со схемой данных для данной интересной задачки.. Не могу понять какие таблички
использовать и в какой конфигурации.. А если кто приведет примеры запросов к этим табличкам так я вообще от счастья в окно выпрыгну.
Просто реально уже башку над этим сломал....
...
Рейтинг: 0 / 0
Пмогите со схемой БД для нетривиального проекта по выводу марок авто по кодам запчастей
    #36917306
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dmitry313Пока придумал только табличку в виде: МАРКА АВТО, НОМЕРА ЗАПЧАСТЕЙ КОТРОЫЕ ЕСТЬ В ЭТОМ АВТО. А далее full-text search по
этой табличке (по колонке с номерами запчастей) и вывод марки авто. Правда непонятно куда приделать количество и стоимость запчастей.....???3 таблички - "авто", "запчасть", и связывающая "запчасть_в_авто"
Как же ещё?

Для такой программы конечно схема может быть и сложнее (например, могут быть запчасти, состоящие из множества других запчастей, для одной марки в зависимости от модификации и года вымуска могут использоваться разные запчасти), но общий принцип такой - никаких текстовых полей со списком запчастей.
...
Рейтинг: 0 / 0
Пмогите со схемой БД для нетривиального проекта по выводу марок авто по кодам запчастей
    #36917368
Dmitry313
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дело в том, что еще есть стоимость запчасти и количество данной модели запчасти в марке авто.
...
Рейтинг: 0 / 0
Пмогите со схемой БД для нетривиального проекта по выводу марок авто по кодам запчастей
    #36917377
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dmitry313,

И стоимость запчасти меняется в зависимости от того, владельцу какого авто ее продадут?

Схема данных классическая - как учат в учебниках по БД.
А вот запросы придется строить - поломать голову немного.

А вот если бы пришлось искать по частичному совпадению, было бы хуже.
...
Рейтинг: 0 / 0
Пмогите со схемой БД для нетривиального проекта по выводу марок авто по кодам запчастей
    #36917410
Dmitry313
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Стоимость меняться не будет.. просто будет как таблица-справочник
...
Рейтинг: 0 / 0
Пмогите со схемой БД для нетривиального проекта по выводу марок авто по кодам запчастей
    #36918702
Злой Бобр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dmitry313,

Ну наверно что-то типа этого Ваша схема
...
Рейтинг: 0 / 0
Пмогите со схемой БД для нетривиального проекта по выводу марок авто по кодам запчастей
    #36919554
nosov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
автор... А если кто приведет примеры запросов к этим табличкам так я вообще от счастья в окно выпрыгну.
примеры запросов приводить не буду... не хочу грех на душу брать.
...
Рейтинг: 0 / 0
Пмогите со схемой БД для нетривиального проекта по выводу марок авто по кодам запчастей
    #36919729
Dmitry313
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Злой БобрDmitry313,

Ну наверно что-то типа этого Ваша схема

спасибо
...
Рейтинг: 0 / 0
Пмогите со схемой БД для нетривиального проекта по выводу марок авто по кодам запчастей
    #36919774
Злой Бобр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dmitry313,

Незачто. Сделано побыстрячку на коленке. Целью было подтолкнуть в правильном направлении. Как добавить таблиц и изменить в связи с этим запрос думаю сами додумаетесь. Удачи.
...
Рейтинг: 0 / 0
Пмогите со схемой БД для нетривиального проекта по выводу марок авто по кодам запчастей
    #36920096
Dmitry313
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Еще один ламерский вопросик...

При внесении данных с формы мне придется вносить сразу в три таблицы?
номер запчасти в одну таблицу
марку машины в другую
и количество запчастей в машине в третью (которая и реализуют отношение многие-ко-многим)
...
Рейтинг: 0 / 0
Пмогите со схемой БД для нетривиального проекта по выводу марок авто по кодам запчастей
    #36920287
Злой Бобр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dmitry313,

У тебя 3 таблицы. Марка машины, запчасти, применение запчастей. Сначала заполняешь первые 2. Потом третью. Количество нигде невносишь, оно вычисляется для сортировки как и было сказано в первом посте. Т.е. сортируем по к-во запчастей | марка
...
Рейтинг: 0 / 0
Пмогите со схемой БД для нетривиального проекта по выводу марок авто по кодам запчастей
    #36920398
Dmitry313
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Извиняюсь, я наверное не правильно сформулировал часть задачки, а потом соответственно и вопросы
не правильные начал задавать. Дело в том, что существует не только условие на количество запчастей в машине, но еще у каждой запчасти есть свой числовой атрибут (не важен физический смысл), который разный в каждой марке машины.. Похоже именно этот атрибут (числовой) нужно мне хранить в третьей связующей таблице..
...
Рейтинг: 0 / 0
Пмогите со схемой БД для нетривиального проекта по выводу марок авто по кодам запчастей
    #36920483
Злой Бобр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dmitry313,

Артикул в таблице запчасти.
...
Рейтинг: 0 / 0
Пмогите со схемой БД для нетривиального проекта по выводу марок авто по кодам запчастей
    #36920571
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dmitry313,

это будет реальная боевая база или учебная?
...
Рейтинг: 0 / 0
Пмогите со схемой БД для нетривиального проекта по выводу марок авто по кодам запчастей
    #36920658
Dmitry313
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoft,
учебная
...
Рейтинг: 0 / 0
Пмогите со схемой БД для нетривиального проекта по выводу марок авто по кодам запчастей
    #36921357
Dmitry313
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Наконец-то сделал нужную модель данных..
Но тут возник новый вопросик
У меня в запросе есть условие WHERE (имя столбца) IN ('значение1', 'значение2', 'значение3' и т.д.)
Как можно сделать, чтобы запрос искал вхождения НЕ 'значение1' OR 'значение2' OR 'значение3'
а 'значение1' AND 'значение2' AND 'значение3'.
Вообщем значения у меня хранятся в коллекции, а нужно вывести строки БД, в которых
одновременно находились все значения коллекции или хотя бы 3 из 4 (или 2 из 4)

Пример:
name number
значение1 2
значение2 2
значение3 2
значение4 2
значение5 3
значение4 3
значение6 3
значение1 4
значение2 4
значение3 4

запрос..........
wherе name in ('значение1', 'значение2', 'значение3', 'значение4')

В результате должен вывести:
number
2
4
...
Рейтинг: 0 / 0
Пмогите со схемой БД для нетривиального проекта по выводу марок авто по кодам запчастей
    #36921395
Фотография proposed amendment
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoftDmitry313,

это будет реальная боевая база или учебная?

все реальные боевые базы по этой предметке уже написаны
...
Рейтинг: 0 / 0
Пмогите со схемой БД для нетривиального проекта по выводу марок авто по кодам запчастей
    #36921486
Dmitry313
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а какая разница боевая или учебная в данном контексте?
...
Рейтинг: 0 / 0
Пмогите со схемой БД для нетривиального проекта по выводу марок авто по кодам запчастей
    #36921980
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dmitry313а какая разница боевая или учебная в данном контексте?Взаимоотношения запчастей (включая неоригинальные), номеров и марок/моделей/модификаций автомобилей значительно сложнее.
...
Рейтинг: 0 / 0
Пмогите со схемой БД для нетривиального проекта по выводу марок авто по кодам запчастей
    #36921996
Злой Бобр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dmitry313Как можно сделать, чтобы запрос искал вхождения НЕ 'значение1' OR 'значение2' OR 'значение3'
а 'значение1' AND 'значение2' AND 'значение3'.
Может всетаки сначала стоит выучить теорию а не заниматься методом научного тыка?..
NOT IN()
...
Рейтинг: 0 / 0
Пмогите со схемой БД для нетривиального проекта по выводу марок авто по кодам запчастей
    #36922020
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Злой БобрDmitry313Как можно сделать, чтобы запрос искал вхождения НЕ 'значение1' OR 'значение2' OR 'значение3'
а 'значение1' AND 'значение2' AND 'значение3'.Может всетаки сначала стоит выучить теорию а не заниматься методом научного тыка?..
NOT IN()К вам ваш же вопрос так же относится.

Желаемый запрос будет примерно такой:
Код: plaintext
1.
2.
3.
4.
SELECT number
FROM mytable
WHERE name IN ('значение1', 'значение2', 'значение3', 'значение4')
GROUP BY number
HAVING COUNT(*)= 4 
...
Рейтинг: 0 / 0
Пмогите со схемой БД для нетривиального проекта по выводу марок авто по кодам запчастей
    #36922035
Dmitry313
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Злой Бобр
Может всетаки сначала стоит выучить теорию а не заниматься методом научного тыка?..
NOT IN()
Так NOT IN также логически проверяет все на OR, только с отрицанием..
А мне надо чтобы все элементы присутствовали, т.е. логическое AND...
Похоже придется сначала сгруппировать значения..по одному номеру... а потом искать
в группах одновременное вхождение значений..
Пока не понял как это реализовать...
Типа
Сгруппированные элементы
1 10
1 50
1 60

2 30
3 40
2 50

3 30
3 40

4 20
4 50
4 10

Мне нужно вычленить те элементы где есть одновременное вхождение значений 50, 10 (т.е. 50 and 10)
Т.е. в результате запрос мне должен выдать

1
4
...
Рейтинг: 0 / 0
Пмогите со схемой БД для нетривиального проекта по выводу марок авто по кодам запчастей
    #36922399
Злой Бобр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dmitry313,

Дополни мой запрос
HAVING COUNT(ZAPCHASTI.ARTIKLE)>=3

3 - это количество одновременно присутствующих элементов (в моем примере три элемента).
...
Рейтинг: 0 / 0
Пмогите со схемой БД для нетривиального проекта по выводу марок авто по кодам запчастей
    #36927778
Dmitry313
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Злой БобрDmitry313,

Дополни мой запрос
HAVING COUNT(ZAPCHASTI.ARTIKLE)>=3

3 - это количество одновременно присутствующих элементов (в моем примере три элемента).

СПАСИБО, НАКОНЕЦ-ТО ВЫШЛО
...
Рейтинг: 0 / 0
24 сообщений из 24, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Пмогите со схемой БД для нетривиального проекта по выводу марок авто по кодам запчастей
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]