powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / помощь построить связи многие ко многим
25 сообщений из 28, страница 1 из 2
помощь построить связи многие ко многим
    #39842305
MrKrapkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте. Я пишу свой интернет магазин -- продажи автодеталей. Возникла сложность с организацией таблиц представления товара. По большому счету я бы мог организовать все топором, но хотелось бы "эстетично" и правильно с точки зрения архитектуры. Итак что мы имеем по детали:
1. ее оригинальный номер (далее ОН), т.е. от официального производителя. например zp05f7
2. кросс номера (далее КН, неофициальные производители). Деталь по кроссу тоже деталь, а следовательно имеет все перечисленные свойства касательно данного описания. Рекурсия.
3. категория детали, например "детали ходовой"
4. подкатегория (стойка стабилизатора)
5. марка авто, например seat. Может быть несколько
6. модель авто, тоже возможны несколько
... цена, наличие и т.д. подробности
Суть проблемы заключается в том что я впал в ступор и не могу построить таблицы так, чтобы оптимально делать выборки. Мне надо чтобы по запросу либо ОН, либо КН, либо подкатегория + марка + модель получить полный список всех деталей, которые связаны между собой. Для этого я мог бы создать одну таблицу с дублирующимися записями и писать простенький запрос к БД. Это неизбежно приведет к огромному объему данных и замедлит работу по выборке из БД. Я прошу вашей помощи, уважаемые специалисты, в организации множества таблиц и связей между ними, чтобы делать выборки можно было прибегнув к связям. Благодарю за трату времени на лонгрид. Что надо прояснить, пишите.
...
Рейтинг: 0 / 0
помощь построить связи многие ко многим
    #39842310
MrKrapkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
отдельные таблицы с категориями, подкатегориями, маркми авто, моделями конечно же есть.
...
Рейтинг: 0 / 0
помощь построить связи многие ко многим
    #39842320
982183
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Посмотрите для начала, как это давно реализовано у других
https://jptrade.ru/
https://www.japancar.ru/
https://www.drom.ru/
http://www.cdmail.ru/business/work/jc-trade.htm
...
Рейтинг: 0 / 0
помощь построить связи многие ко многим
    #39842333
MrKrapkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
982183,
Вы, верно, не поняли сути. frontend реализован на 100%, backend на 70%. Не могу завершить backend пока не организую до конца БД. А вот с организацией БД возникли трудности. В чем я и прошу мне помочь. Благодарю за потраченное на меня время.
...
Рейтинг: 0 / 0
помощь построить связи многие ко многим
    #39842370
Serguei
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MrKrapkinВы, верно, не поняли сути. frontend реализован на 100%, backend на 70%. Не могу завершить backend пока не организую до конца БД. А вот с организацией БД возникли трудности. В чем я и прошу мне помочь. Благодарю за потраченное на меня время.

вероятно вы не понимаете сути ) если есть готовая база и есть вопрос по этой базе - ну так и покажите таблицы и в чем вопрос и чем помочь. А сейчас вы сказали: доктор, у меня это....
...
Рейтинг: 0 / 0
помощь построить связи многие ко многим
    #39842383
982183
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MrKrapkinА вот с организацией БД возникли трудности.
Именно принципы организации БД можно посмотреть на готовых проектах.
...
Рейтинг: 0 / 0
помощь построить связи многие ко многим
    #39842423
KreatorXXI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MrKrapkin,

я пока не вижу необходимости плодить таблицы. Может объясните в чём дублирование записей?
...
Рейтинг: 0 / 0
помощь построить связи многие ко многим
    #39842555
MrKrapkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Sergueiвероятно вы не понимаете сути ) если есть готовая база и есть вопрос по этой базе - ну так и покажите таблицы и в чем вопрос и чем помочь. А сейчас вы сказали: доктор, у меня это....
Я пишу сразу все по необходимости. Метод снизу вверх. Как пишут на forth'е, например. Сначала дизайн и верстка, а потом backend с БД "штучно". Сначала опцию на сервер сайд, потом таблицу в БД и привязка к данной опции. Код в БД не хранится, только данные. На данный момент есть несколько таблиц, описанных во втором посте, ну и технические, типа клиент инфо, куки и т.д. Я хочу создать таблицу/таблицы с товаром/деталями. Однако сложность в том что для каждой детали может быть:
1. несколько аналогов;
2. несколько подходящих автопроизводтелей;
3. несколько подходящих моделей как одного, так и разных автопроизводителей.
Для выборки лучше использовать целочисленные значения (id, например) просто потому что это на машинном уровне быстрее чем сравнивать строки. А следовательно связывать деталь с аналогами, автопроизводителями, моделями лучше целочисленными ключами. Поскольку хранить массивы в БД категорически неправильно, то надо как-то исхитриться и организовать, например две таблицы (ОН и КН), связать их друг с другом посредством foreign key, но также тем же методом надо еще связать и с автопроизводителями и моделями авто. Допустим связи с двумя таблицами у меня не вызывают вообще никаких вопросов. Но связать сразу несколько таблиц мне совсем непонятно как, равно как и непонятно как делать из таких связей выборки. Также я не уверен что таблиц для товара должно быть две. Я хорошо набил руку в программировании, освоил веб, но опыт с БД имею только на уровне пользователя.
982183Именно принципы организации БД можно посмотреть на готовых проектах.
Может быть я что-то не понимаю? Это веб сайты. Они предоставляют доступ к своим БД? Если так, сейчас nmap в руки и посмотрим, но пары логин/пароль я у них на сайтах не заметил.
KreatorXXIя пока не вижу необходимости плодить таблицы. Может объясните в чём дублирование записей?
См выше.
---
Благодарю всех за внимание к моей проблеме и желание помочь.
...
Рейтинг: 0 / 0
помощь построить связи многие ко многим
    #39842585
MrKrapkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Короче, таблицу с переменным количеством столбцов создать нельзя. Типа:
ON1 CN1 CN2
ON2 CN1 CN2 CN3 CN4
Другой вариант -- таблицы с дублирующимися записями, например:
ON1 CN1
ON1 CN2
ON1 CN3
(ON - Original Number, CN - Cross Number)
И это не выход. Почему: например, есть ON1, CN1, CN2, Vendor1, Vendor2, Vendor3. Как видим, вендоров больше, а значит в одной записи будет шлак в кроссах. Пилить костыль по вычленению шлака => архитектурная недоработка. Похоже, пока я тут объясняю то уже начинает вырисовываться общая картина того что надо делать.
...
Рейтинг: 0 / 0
помощь построить связи многие ко многим
    #39842634
kolobok0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MrKrapkin,

Судя по тому что Вы написали...
1) есть понимание производителей, явно они имеют больше полей чем название. И явно они имеют тип - официал и не официал.
2) есть категория деталей, есть под категория
3) есть марка авто и модель авто..

где тут рекурсия и динамическое кол-во полей???

Если Вам становится понятней, после изложения тут в письменном виде - это позитивный момент. Негативный - наверное стоит привести тут структуру которые Вы мыслите. Народ к Вам и потянется, когда знакомые сущности = таблицы, поля, типы и т.д..

удачи вам
(круглый)
...
Рейтинг: 0 / 0
помощь построить связи многие ко многим
    #39842652
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как видим, вендоров больше, а значит в одной записи будет шлак

таблица_N:N_намбер _1
суррготатный_Id Original_Number Cross_Number

таблица_N:N_намбер _2
суррготатный_Id Original_Number Vendor
...
Рейтинг: 0 / 0
помощь построить связи многие ко многим
    #39842740
MrKrapkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kolobok0MrKrapkin, Негативный - наверное стоит привести тут структуру которые Вы мыслите.
Вот именно за структурой я сюда я и обратился. Leonid Kudryavtsev, предложил как раз то что у меня вырисовалось в процессе обсуждения.
Благодарю всех за участие, помощь.
...
Рейтинг: 0 / 0
помощь построить связи многие ко многим
    #39842749
Serguei
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MrKrapkinОднако сложность в том что для каждой детали может быть:
1. несколько аналогов;
2. несколько подходящих автопроизводтелей;
3. несколько подходящих моделей как одного, так и разных автопроизводителей.
Для выборки лучше использовать целочисленные значения (id, например) просто потому что это на машинном уровне быстрее чем сравнивать строки. А следовательно связывать деталь с аналогами, автопроизводителями, моделями лучше целочисленными ключами. Поскольку хранить массивы в БД категорически неправильно, то надо как-то исхитриться и организовать, например две таблицы (ОН и КН), связать их друг с другом посредством foreign key, но также тем же методом надо еще связать и с автопроизводителями и моделями авто. Допустим связи с двумя таблицами у меня не вызывают вообще никаких вопросов. Но связать сразу несколько таблиц мне совсем непонятно как, равно как и непонятно как делать из таких связей выборки.

делаете таблицу для связи многие-ко-многим и все. В чем конкретно сложность то?

MrKrapkinТакже я не уверен что таблиц для товара должно быть две.

Я скажу больше:таблиц может быть и не 2 и не 2 десятка для хранения одного объекта, а значительно больше. Ограничений по количеству таблиц нет. Нужно грамотно под задачи спроектировать структуру.

Поскольку вы не можете задать вопрос, вы также неготовы услышать на него ответ. Для начала почитайте основы проектирования реляционных БД.
...
Рейтинг: 0 / 0
помощь построить связи многие ко многим
    #39842756
MrKrapkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SergueiДля начала почитайте основы проектирования реляционных БД.
Есть что-то конкретное? English включительно.
...
Рейтинг: 0 / 0
помощь построить связи многие ко многим
    #39842762
Serguei
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MrKrapkinЕсть что-то конкретное? English включительно.
емое! в гугле скорее набирайте! теряете драгоценные минуты. На интуит.ру есть хороший материал
...
Рейтинг: 0 / 0
помощь построить связи многие ко многим
    #39842814
Mr.Fontaine
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MrKrapkinЗдравствуйте. Я пишу свой интернет магазин -- продажи автодеталей. Возникла сложность с организацией таблиц представления товара. По большому счету я бы мог организовать все топором, но хотелось бы "эстетично" и правильно с точки зрения архитектуры. Итак что мы имеем по детали:
1. ее оригинальный номер (далее ОН), т.е. от официального производителя. например zp05f7
2. кросс номера (далее КН, неофициальные производители). Деталь по кроссу тоже деталь, а следовательно имеет все перечисленные свойства касательно данного описания. Рекурсия.

Что такое рекурсия?
У Вас два предмета имеет одни и те же свойства. Это не рекурсия однако. Это просто отдельная сущность
То есть у Вас есть сущности: детали и свойства деталей. И их можно описать:
Код: plaintext
1.
2.
свойства - имеют ключевое поле id и далее описание всех возможных свойств
детали - имеют ключевое поле id,  а также номер детали, id_производителя, id_свойства, признак оригинальности и далее, при необходимости, прочие поля

Всё. Теперь две детали (и оригинал и кросс) могут иметь одинаковые свойства. И по ид свойства можно выбирать соответствие кроссов оригиналам. В чём тут проблемы?
Но, честно говоря, у меня лично нет уверенности, что кроссы обязательно будут иметь те же свойства, что и оригинальные детали. Запросто могут быть отличия.
Например, задние фонари. У оригинальной детали поворотники выполняются жёлтым, а у кросса они могут быть красными.
По покрытиям могут быть отличия (у кого-то хромированное, у кого-то та же деталь может быть никелированная) и так далее
Потому первоначально увиденная структура не верна. Надо изменить структуру таблицы деталей:
Код: plaintext
1.
2.
свойства - имеют ключевое поле id и далее описание всех возможных свойств
детали - имеют ключевое поле id, а также номер детали, id_производителя, id_свойства, id_original и далее, при необходимости, прочие поля

Вместо признака оригинальности указываем ид оригинала, и поэтому теперь и свойства у оригиналов и кроссов могут быть разными (хотя вовсе необязательно) и видно, какая деталь оригинальная, а какая является кросс деталью.
...
Рейтинг: 0 / 0
помощь построить связи многие ко многим
    #39843021
MrKrapkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Sergueiемое! в гугле скорее набирайте! теряете драгоценные минуты. На интуит.ру есть хороший материал
Да ты чертов гений! Как же это я такой идиот не догадался? Вопрос подразумевал отбросить в сторону книги-мусор и обратить внимание на действительно хорошую литературу касательно предмета. Все еще актуален.
...
Рейтинг: 0 / 0
помощь построить связи многие ко многим
    #39843037
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В ERP сталкивался с аналогами, заменами и пр.... IMHO Черт ногу сломит.
...
Рейтинг: 0 / 0
помощь построить связи многие ко многим
    #39843088
Serguei
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MrKrapkinДа ты чертов гений! Как же это я такой идиот не догадался? Вопрос подразумевал отбросить в сторону книги-мусор и обратить внимание на действительно хорошую литературу касательно предмета. Все еще актуален.

батенька, да вы лентяй! Я же вам написал по каким словам и на каком ресурсе! здесь ссылки по моему нельзя публиковать.
...
Рейтинг: 0 / 0
помощь построить связи многие ко многим
    #39843093
Serguei
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MrKrapkinSergueiемое! в гугле скорее набирайте! теряете драгоценные минуты. На интуит.ру есть хороший материал
Да ты чертов гений! Как же это я такой идиот не догадался? Вопрос подразумевал отбросить в сторону книги-мусор и обратить внимание на действительно хорошую литературу касательно предмета. Все еще актуален.
искать в гугле "интуит.ру основы проектирования реляционных БД"

но по моему вам это не поможет ))))
...
Рейтинг: 0 / 0
помощь построить связи многие ко многим
    #39843149
MrKrapkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Sergueiно по моему вам это не поможет ))))
Это -- очень ограниченный "юмор" от очень ограниченного homo. Вы сразу не догадались в чем вообще вопрос и решили вести себя со мной как с наглым школьником, требующим решение его задачи. Получив внятное объяснение собственной глупости решили сослаться на курсы интуит. Мне вполне хватило бы ФИО автора, сопоставимого в предметной области с такими именами как Таненбаум, Страуструпп, банда четырех и т.д., но Вам догадаться до этого невдомёк, а скорее всего Вы вообще предложите самоучитель, ведь он содержит чуть более полезной информации, чем курсы интуит. Странно еще что Вы видеоуроки в трубе не предложили. Вообще хоть что-то кроме интуита по предмету лично Вами было проработано?
...
Рейтинг: 0 / 0
помощь построить связи многие ко многим
    #39843159
Serguei
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MrKrapkinе что Вы видеоуроки в т
ясно. Ищите хорошего автора ) удачи. Отвечать не утруждайте себя.

P.S. Но если бы вы потрудились зайти туда и посмотреть, увидели бы что там очень хорошее изложение материала - лучше не найти.
...
Рейтинг: 0 / 0
помощь построить связи многие ко многим
    #39843161
MrKrapkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Sergueiясно. Ищите хорошего автора ) удачи. Отвечать не утруждайте себя.

P.S. Но если бы вы потрудились зайти туда и посмотреть, увидели бы что там очень хорошее изложение материала - лучше не найти.
Вообще-то я потрудился и зашел на сайты O'reilly, Williams еще до того как Вы начали менторски меня поучать. Благодарю за внимание. Занавес.
...
Рейтинг: 0 / 0
помощь построить связи многие ко многим
    #39843221
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MrKrapkin,

Вы весьма чудной персонаж. Вы смешно надуваете щеки и, в то же время, помощь просите. Так оно не полетит.

Бесплатный совет: если вы не хотите, что с вами общались "как с наглым школьником", не ведите себя как наглый школьник. Ваши критерии качества ожидаемого ответа просто уморительны -- оказывается, сопоставимы они, понимаешь ли, быть должны с какими-то там именами. И президентом заверены быть должны, ага.

Ну и я отмечаю ваши комплименты персоналиям отвечающих. Прям, вижу толпы выстроившихся, которые вам хотят помочь.
...
Рейтинг: 0 / 0
помощь построить связи многие ко многим
    #39843240
s_ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MrKrapkinSergueiемое! в гугле скорее набирайте! теряете драгоценные минуты. На интуит.ру есть хороший материал
Да ты чертов гений! Как же это я такой идиот не догадался? Вопрос подразумевал отбросить в сторону книги-мусор и обратить внимание на действительно хорошую литературу касательно предмета. Все еще актуален.
Дейт. "Введение в системы баз данных"
...
Рейтинг: 0 / 0
25 сообщений из 28, страница 1 из 2
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / помощь построить связи многие ко многим
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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