|
|
|
Пмогите со схемой БД для нетривиального проекта по выводу марок авто по кодам запчастей
|
|||
|---|---|---|---|
|
#18+
Здравствуйте уважаемые форумчане. Вот встал вопросик по поводу архитектуры будущего приложения. Даже скорее архитектуры данных. Стоит нетривиальная задача написать приложение которое бы при вводе наименований автомобильных запчастей выводила бы марку (список марок) автомобиля в котором используются совместно больше двух любых введенных пользователем запчастей (запчасти вводятся по номеру). Например в автомобиле 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 по этой табличке (по колонке с номерами запчастей) и вывод марки авто. Правда непонятно куда приделать количество и стоимость запчастей.....??? Буду рад если найдется умный человек и поможет со схемой данных для данной интересной задачки.. Не могу понять какие таблички использовать и в какой конфигурации.. А если кто приведет примеры запросов к этим табличкам так я вообще от счастья в окно выпрыгну. Просто реально уже башку над этим сломал.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2010, 09:59 |
|
||
|
Пмогите со схемой БД для нетривиального проекта по выводу марок авто по кодам запчастей
|
|||
|---|---|---|---|
|
#18+
Dmitry313Пока придумал только табличку в виде: МАРКА АВТО, НОМЕРА ЗАПЧАСТЕЙ КОТРОЫЕ ЕСТЬ В ЭТОМ АВТО. А далее full-text search по этой табличке (по колонке с номерами запчастей) и вывод марки авто. Правда непонятно куда приделать количество и стоимость запчастей.....???3 таблички - "авто", "запчасть", и связывающая "запчасть_в_авто" Как же ещё? Для такой программы конечно схема может быть и сложнее (например, могут быть запчасти, состоящие из множества других запчастей, для одной марки в зависимости от модификации и года вымуска могут использоваться разные запчасти), но общий принцип такой - никаких текстовых полей со списком запчастей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2010, 10:11 |
|
||
|
Пмогите со схемой БД для нетривиального проекта по выводу марок авто по кодам запчастей
|
|||
|---|---|---|---|
|
#18+
Дело в том, что еще есть стоимость запчасти и количество данной модели запчасти в марке авто. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2010, 10:46 |
|
||
|
Пмогите со схемой БД для нетривиального проекта по выводу марок авто по кодам запчастей
|
|||
|---|---|---|---|
|
#18+
Dmitry313, И стоимость запчасти меняется в зависимости от того, владельцу какого авто ее продадут? Схема данных классическая - как учат в учебниках по БД. А вот запросы придется строить - поломать голову немного. А вот если бы пришлось искать по частичному совпадению, было бы хуже. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2010, 10:51 |
|
||
|
Пмогите со схемой БД для нетривиального проекта по выводу марок авто по кодам запчастей
|
|||
|---|---|---|---|
|
#18+
Стоимость меняться не будет.. просто будет как таблица-справочник ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2010, 11:04 |
|
||
|
Пмогите со схемой БД для нетривиального проекта по выводу марок авто по кодам запчастей
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2010, 18:07 |
|
||
|
Пмогите со схемой БД для нетривиального проекта по выводу марок авто по кодам запчастей
|
|||
|---|---|---|---|
|
#18+
автор... А если кто приведет примеры запросов к этим табличкам так я вообще от счастья в окно выпрыгну. примеры запросов приводить не буду... не хочу грех на душу брать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2010, 09:26 |
|
||
|
Пмогите со схемой БД для нетривиального проекта по выводу марок авто по кодам запчастей
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2010, 10:31 |
|
||
|
Пмогите со схемой БД для нетривиального проекта по выводу марок авто по кодам запчастей
|
|||
|---|---|---|---|
|
#18+
Dmitry313, Незачто. Сделано побыстрячку на коленке. Целью было подтолкнуть в правильном направлении. Как добавить таблиц и изменить в связи с этим запрос думаю сами додумаетесь. Удачи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2010, 10:46 |
|
||
|
Пмогите со схемой БД для нетривиального проекта по выводу марок авто по кодам запчастей
|
|||
|---|---|---|---|
|
#18+
Еще один ламерский вопросик... При внесении данных с формы мне придется вносить сразу в три таблицы? номер запчасти в одну таблицу марку машины в другую и количество запчастей в машине в третью (которая и реализуют отношение многие-ко-многим) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2010, 12:34 |
|
||
|
Пмогите со схемой БД для нетривиального проекта по выводу марок авто по кодам запчастей
|
|||
|---|---|---|---|
|
#18+
Dmitry313, У тебя 3 таблицы. Марка машины, запчасти, применение запчастей. Сначала заполняешь первые 2. Потом третью. Количество нигде невносишь, оно вычисляется для сортировки как и было сказано в первом посте. Т.е. сортируем по к-во запчастей | марка ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2010, 13:43 |
|
||
|
Пмогите со схемой БД для нетривиального проекта по выводу марок авто по кодам запчастей
|
|||
|---|---|---|---|
|
#18+
Извиняюсь, я наверное не правильно сформулировал часть задачки, а потом соответственно и вопросы не правильные начал задавать. Дело в том, что существует не только условие на количество запчастей в машине, но еще у каждой запчасти есть свой числовой атрибут (не важен физический смысл), который разный в каждой марке машины.. Похоже именно этот атрибут (числовой) нужно мне хранить в третьей связующей таблице.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2010, 14:18 |
|
||
|
Пмогите со схемой БД для нетривиального проекта по выводу марок авто по кодам запчастей
|
|||
|---|---|---|---|
|
#18+
Dmitry313, Артикул в таблице запчасти. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2010, 14:45 |
|
||
|
Пмогите со схемой БД для нетривиального проекта по выводу марок авто по кодам запчастей
|
|||
|---|---|---|---|
|
#18+
Dmitry313, это будет реальная боевая база или учебная? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2010, 15:09 |
|
||
|
Пмогите со схемой БД для нетривиального проекта по выводу марок авто по кодам запчастей
|
|||
|---|---|---|---|
|
#18+
miksoft, учебная ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2010, 15:36 |
|
||
|
Пмогите со схемой БД для нетривиального проекта по выводу марок авто по кодам запчастей
|
|||
|---|---|---|---|
|
#18+
Наконец-то сделал нужную модель данных.. Но тут возник новый вопросик У меня в запросе есть условие 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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2010, 19:50 |
|
||
|
Пмогите со схемой БД для нетривиального проекта по выводу марок авто по кодам запчастей
|
|||
|---|---|---|---|
|
#18+
miksoftDmitry313, это будет реальная боевая база или учебная? все реальные боевые базы по этой предметке уже написаны ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2010, 20:19 |
|
||
|
Пмогите со схемой БД для нетривиального проекта по выводу марок авто по кодам запчастей
|
|||
|---|---|---|---|
|
#18+
а какая разница боевая или учебная в данном контексте? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2010, 21:19 |
|
||
|
Пмогите со схемой БД для нетривиального проекта по выводу марок авто по кодам запчастей
|
|||
|---|---|---|---|
|
#18+
Dmitry313а какая разница боевая или учебная в данном контексте?Взаимоотношения запчастей (включая неоригинальные), номеров и марок/моделей/модификаций автомобилей значительно сложнее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2010, 09:50 |
|
||
|
Пмогите со схемой БД для нетривиального проекта по выводу марок авто по кодам запчастей
|
|||
|---|---|---|---|
|
#18+
Dmitry313Как можно сделать, чтобы запрос искал вхождения НЕ 'значение1' OR 'значение2' OR 'значение3' а 'значение1' AND 'значение2' AND 'значение3'. Может всетаки сначала стоит выучить теорию а не заниматься методом научного тыка?.. NOT IN() ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2010, 09:57 |
|
||
|
Пмогите со схемой БД для нетривиального проекта по выводу марок авто по кодам запчастей
|
|||
|---|---|---|---|
|
#18+
Злой БобрDmitry313Как можно сделать, чтобы запрос искал вхождения НЕ 'значение1' OR 'значение2' OR 'значение3' а 'значение1' AND 'значение2' AND 'значение3'.Может всетаки сначала стоит выучить теорию а не заниматься методом научного тыка?.. NOT IN()К вам ваш же вопрос так же относится. Желаемый запрос будет примерно такой: Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2010, 10:11 |
|
||
|
Пмогите со схемой БД для нетривиального проекта по выводу марок авто по кодам запчастей
|
|||
|---|---|---|---|
|
#18+
Злой Бобр Может всетаки сначала стоит выучить теорию а не заниматься методом научного тыка?.. 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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2010, 10:16 |
|
||
|
Пмогите со схемой БД для нетривиального проекта по выводу марок авто по кодам запчастей
|
|||
|---|---|---|---|
|
#18+
Dmitry313, Дополни мой запрос HAVING COUNT(ZAPCHASTI.ARTIKLE)>=3 3 - это количество одновременно присутствующих элементов (в моем примере три элемента). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2010, 12:22 |
|
||
|
Пмогите со схемой БД для нетривиального проекта по выводу марок авто по кодам запчастей
|
|||
|---|---|---|---|
|
#18+
Злой БобрDmitry313, Дополни мой запрос HAVING COUNT(ZAPCHASTI.ARTIKLE)>=3 3 - это количество одновременно присутствующих элементов (в моем примере три элемента). СПАСИБО, НАКОНЕЦ-ТО ВЫШЛО ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2010, 13:41 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=36920398&tid=1542465]: |
0ms |
get settings: |
7ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
153ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
57ms |
get tp. blocked users: |
1ms |
| others: | 208ms |
| total: | 460ms |

| 0 / 0 |
