|  | 
| 
помощь построить связи многие ко многим | |||
|---|---|---|---|
| #18+ Здравствуйте. Я пишу свой интернет магазин -- продажи автодеталей. Возникла сложность с организацией таблиц представления товара. По большому счету я бы мог организовать все топором, но хотелось бы "эстетично" и правильно с точки зрения архитектуры. Итак что мы имеем по детали: 1. ее оригинальный номер (далее ОН), т.е. от официального производителя. например zp05f7 2. кросс номера (далее КН, неофициальные производители). Деталь по кроссу тоже деталь, а следовательно имеет все перечисленные свойства касательно данного описания. Рекурсия. 3. категория детали, например "детали ходовой" 4. подкатегория (стойка стабилизатора) 5. марка авто, например seat. Может быть несколько 6. модель авто, тоже возможны несколько ... цена, наличие и т.д. подробности Суть проблемы заключается в том что я впал в ступор и не могу построить таблицы так, чтобы оптимально делать выборки. Мне надо чтобы по запросу либо ОН, либо КН, либо подкатегория + марка + модель получить полный список всех деталей, которые связаны между собой. Для этого я мог бы создать одну таблицу с дублирующимися записями и писать простенький запрос к БД. Это неизбежно приведет к огромному объему данных и замедлит работу по выборке из БД. Я прошу вашей помощи, уважаемые специалисты, в организации множества таблиц и связей между ними, чтобы делать выборки можно было прибегнув к связям. Благодарю за трату времени на лонгрид. Что надо прояснить, пишите. ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 28.07.2019, 14:19 |  | ||
| 
помощь построить связи многие ко многим | |||
|---|---|---|---|
| #18+ отдельные таблицы с категориями, подкатегориями, маркми авто, моделями конечно же есть. ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 28.07.2019, 15:13 |  | ||
| 
помощь построить связи многие ко многим | |||
|---|---|---|---|
| #18+ Посмотрите для начала, как это давно реализовано у других https://jptrade.ru/ https://www.japancar.ru/ https://www.drom.ru/ http://www.cdmail.ru/business/work/jc-trade.htm ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 28.07.2019, 16:29 |  | ||
| 
помощь построить связи многие ко многим | |||
|---|---|---|---|
| #18+ 982183, Вы, верно, не поняли сути. frontend реализован на 100%, backend на 70%. Не могу завершить backend пока не организую до конца БД. А вот с организацией БД возникли трудности. В чем я и прошу мне помочь. Благодарю за потраченное на меня время. ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 28.07.2019, 19:07 |  | ||
| 
помощь построить связи многие ко многим | |||
|---|---|---|---|
| #18+ MrKrapkinВы, верно, не поняли сути. frontend реализован на 100%, backend на 70%. Не могу завершить backend пока не организую до конца БД. А вот с организацией БД возникли трудности. В чем я и прошу мне помочь. Благодарю за потраченное на меня время. вероятно вы не понимаете сути ) если есть готовая база и есть вопрос по этой базе - ну так и покажите таблицы и в чем вопрос и чем помочь. А сейчас вы сказали: доктор, у меня это.... ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 28.07.2019, 23:31 |  | ||
| 
помощь построить связи многие ко многим | |||
|---|---|---|---|
| #18+ MrKrapkinА вот с организацией БД возникли трудности. Именно принципы организации БД можно посмотреть на готовых проектах. ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 29.07.2019, 02:35 |  | ||
| 
помощь построить связи многие ко многим | |||
|---|---|---|---|
| #18+ MrKrapkin, я пока не вижу необходимости плодить таблицы. Может объясните в чём дублирование записей? ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 29.07.2019, 10:03 |  | ||
| 
помощь построить связи многие ко многим | |||
|---|---|---|---|
| #18+ Sergueiвероятно вы не понимаете сути ) если есть готовая база и есть вопрос по этой базе - ну так и покажите таблицы и в чем вопрос и чем помочь. А сейчас вы сказали: доктор, у меня это.... Я пишу сразу все по необходимости. Метод снизу вверх. Как пишут на forth'е, например. Сначала дизайн и верстка, а потом backend с БД "штучно". Сначала опцию на сервер сайд, потом таблицу в БД и привязка к данной опции. Код в БД не хранится, только данные. На данный момент есть несколько таблиц, описанных во втором посте, ну и технические, типа клиент инфо, куки и т.д. Я хочу создать таблицу/таблицы с товаром/деталями. Однако сложность в том что для каждой детали может быть: 1. несколько аналогов; 2. несколько подходящих автопроизводтелей; 3. несколько подходящих моделей как одного, так и разных автопроизводителей. Для выборки лучше использовать целочисленные значения (id, например) просто потому что это на машинном уровне быстрее чем сравнивать строки. А следовательно связывать деталь с аналогами, автопроизводителями, моделями лучше целочисленными ключами. Поскольку хранить массивы в БД категорически неправильно, то надо как-то исхитриться и организовать, например две таблицы (ОН и КН), связать их друг с другом посредством foreign key, но также тем же методом надо еще связать и с автопроизводителями и моделями авто. Допустим связи с двумя таблицами у меня не вызывают вообще никаких вопросов. Но связать сразу несколько таблиц мне совсем непонятно как, равно как и непонятно как делать из таких связей выборки. Также я не уверен что таблиц для товара должно быть две. Я хорошо набил руку в программировании, освоил веб, но опыт с БД имею только на уровне пользователя. 982183Именно принципы организации БД можно посмотреть на готовых проектах. Может быть я что-то не понимаю? Это веб сайты. Они предоставляют доступ к своим БД? Если так, сейчас nmap в руки и посмотрим, но пары логин/пароль я у них на сайтах не заметил. KreatorXXIя пока не вижу необходимости плодить таблицы. Может объясните в чём дублирование записей? См выше. --- Благодарю всех за внимание к моей проблеме и желание помочь. ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 29.07.2019, 14:41 |  | ||
| 
помощь построить связи многие ко многим | |||
|---|---|---|---|
| #18+ Короче, таблицу с переменным количеством столбцов создать нельзя. Типа: 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. Как видим, вендоров больше, а значит в одной записи будет шлак в кроссах. Пилить костыль по вычленению шлака => архитектурная недоработка. Похоже, пока я тут объясняю то уже начинает вырисовываться общая картина того что надо делать. ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 29.07.2019, 15:55 |  | ||
| 
помощь построить связи многие ко многим | |||
|---|---|---|---|
| #18+ MrKrapkin, Судя по тому что Вы написали... 1) есть понимание производителей, явно они имеют больше полей чем название. И явно они имеют тип - официал и не официал. 2) есть категория деталей, есть под категория 3) есть марка авто и модель авто.. где тут рекурсия и динамическое кол-во полей??? Если Вам становится понятней, после изложения тут в письменном виде - это позитивный момент. Негативный - наверное стоит привести тут структуру которые Вы мыслите. Народ к Вам и потянется, когда знакомые сущности = таблицы, поля, типы и т.д.. удачи вам (круглый) ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 29.07.2019, 16:58 |  | ||
| 
помощь построить связи многие ко многим | |||
|---|---|---|---|
| #18+ Как видим, вендоров больше, а значит в одной записи будет шлак таблица_N:N_намбер _1 суррготатный_Id Original_Number Cross_Number таблица_N:N_намбер _2 суррготатный_Id Original_Number Vendor ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 29.07.2019, 17:18 |  | ||
| 
помощь построить связи многие ко многим | |||
|---|---|---|---|
| #18+ kolobok0MrKrapkin, Негативный - наверное стоит привести тут структуру которые Вы мыслите. Вот именно за структурой я сюда я и обратился. Leonid Kudryavtsev, предложил как раз то что у меня вырисовалось в процессе обсуждения. Благодарю всех за участие, помощь. ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 29.07.2019, 21:26 |  | ||
| 
помощь построить связи многие ко многим | |||
|---|---|---|---|
| #18+ MrKrapkinОднако сложность в том что для каждой детали может быть: 1. несколько аналогов; 2. несколько подходящих автопроизводтелей; 3. несколько подходящих моделей как одного, так и разных автопроизводителей. Для выборки лучше использовать целочисленные значения (id, например) просто потому что это на машинном уровне быстрее чем сравнивать строки. А следовательно связывать деталь с аналогами, автопроизводителями, моделями лучше целочисленными ключами. Поскольку хранить массивы в БД категорически неправильно, то надо как-то исхитриться и организовать, например две таблицы (ОН и КН), связать их друг с другом посредством foreign key, но также тем же методом надо еще связать и с автопроизводителями и моделями авто. Допустим связи с двумя таблицами у меня не вызывают вообще никаких вопросов. Но связать сразу несколько таблиц мне совсем непонятно как, равно как и непонятно как делать из таких связей выборки. делаете таблицу для связи многие-ко-многим и все. В чем конкретно сложность то? MrKrapkinТакже я не уверен что таблиц для товара должно быть две. Я скажу больше:таблиц может быть и не 2 и не 2 десятка для хранения одного объекта, а значительно больше. Ограничений по количеству таблиц нет. Нужно грамотно под задачи спроектировать структуру. Поскольку вы не можете задать вопрос, вы также неготовы услышать на него ответ. Для начала почитайте основы проектирования реляционных БД. ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 29.07.2019, 22:12 |  | ||
| 
помощь построить связи многие ко многим | |||
|---|---|---|---|
| #18+ SergueiДля начала почитайте основы проектирования реляционных БД. Есть что-то конкретное? English включительно. ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 29.07.2019, 22:35 |  | ||
| 
помощь построить связи многие ко многим | |||
|---|---|---|---|
| #18+ MrKrapkinЕсть что-то конкретное? English включительно. емое! в гугле скорее набирайте! теряете драгоценные минуты. На интуит.ру есть хороший материал ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 29.07.2019, 23:17 |  | ||
| 
помощь построить связи многие ко многим | |||
|---|---|---|---|
| #18+ MrKrapkinЗдравствуйте. Я пишу свой интернет магазин -- продажи автодеталей. Возникла сложность с организацией таблиц представления товара. По большому счету я бы мог организовать все топором, но хотелось бы "эстетично" и правильно с точки зрения архитектуры. Итак что мы имеем по детали: 1. ее оригинальный номер (далее ОН), т.е. от официального производителя. например zp05f7 2. кросс номера (далее КН, неофициальные производители). Деталь по кроссу тоже деталь, а следовательно имеет все перечисленные свойства касательно данного описания. Рекурсия. Что такое рекурсия? У Вас два предмета имеет одни и те же свойства. Это не рекурсия однако. Это просто отдельная сущность То есть у Вас есть сущности: детали и свойства деталей. И их можно описать: Код: plaintext 1. 2. Всё. Теперь две детали (и оригинал и кросс) могут иметь одинаковые свойства. И по ид свойства можно выбирать соответствие кроссов оригиналам. В чём тут проблемы? Но, честно говоря, у меня лично нет уверенности, что кроссы обязательно будут иметь те же свойства, что и оригинальные детали. Запросто могут быть отличия. Например, задние фонари. У оригинальной детали поворотники выполняются жёлтым, а у кросса они могут быть красными. По покрытиям могут быть отличия (у кого-то хромированное, у кого-то та же деталь может быть никелированная) и так далее Потому первоначально увиденная структура не верна. Надо изменить структуру таблицы деталей: Код: plaintext 1. 2. Вместо признака оригинальности указываем ид оригинала, и поэтому теперь и свойства у оригиналов и кроссов могут быть разными (хотя вовсе необязательно) и видно, какая деталь оригинальная, а какая является кросс деталью. ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 30.07.2019, 07:13 |  | ||
| 
помощь построить связи многие ко многим | |||
|---|---|---|---|
| #18+ Sergueiемое! в гугле скорее набирайте! теряете драгоценные минуты. На интуит.ру  есть хороший материал Да ты чертов гений! Как же это я такой идиот не догадался? Вопрос подразумевал отбросить в сторону книги-мусор и обратить внимание на действительно хорошую литературу касательно предмета. Все еще актуален. ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 30.07.2019, 15:04 |  | ||
| 
помощь построить связи многие ко многим | |||
|---|---|---|---|
| #18+ В ERP сталкивался с аналогами, заменами и пр.... IMHO Черт ногу сломит. ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 30.07.2019, 15:32 |  | ||
| 
помощь построить связи многие ко многим | |||
|---|---|---|---|
| #18+ MrKrapkinДа ты чертов гений! Как же это я такой идиот не догадался? Вопрос подразумевал отбросить в сторону книги-мусор и обратить внимание на действительно хорошую литературу касательно предмета. Все еще актуален. батенька, да вы лентяй! Я же вам написал по каким словам и на каком ресурсе! здесь ссылки по моему нельзя публиковать. ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 30.07.2019, 16:48 |  | ||
| 
помощь построить связи многие ко многим | |||
|---|---|---|---|
| #18+ MrKrapkinSergueiемое! в гугле скорее набирайте! теряете драгоценные минуты. На интуит.ру  есть хороший материал Да ты чертов гений! Как же это я такой идиот не догадался? Вопрос подразумевал отбросить в сторону книги-мусор и обратить внимание на действительно хорошую литературу касательно предмета. Все еще актуален. искать в гугле "интуит.ру основы проектирования реляционных БД" но по моему вам это не поможет )))) ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 30.07.2019, 16:52 |  | ||
| 
помощь построить связи многие ко многим | |||
|---|---|---|---|
| #18+ Sergueiно по моему вам это не поможет )))) Это -- очень ограниченный "юмор" от очень ограниченного homo. Вы сразу не догадались в чем вообще вопрос и решили вести себя со мной как с наглым школьником, требующим решение его задачи. Получив внятное объяснение собственной глупости решили сослаться на курсы интуит. Мне вполне хватило бы ФИО автора, сопоставимого в предметной области с такими именами как Таненбаум, Страуструпп, банда четырех и т.д., но Вам догадаться до этого невдомёк, а скорее всего Вы вообще предложите самоучитель, ведь он содержит чуть более полезной информации, чем курсы интуит. Странно еще что Вы видеоуроки в трубе не предложили. Вообще хоть что-то кроме интуита по предмету лично Вами было проработано? ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 30.07.2019, 19:41 |  | ||
| 
помощь построить связи многие ко многим | |||
|---|---|---|---|
| #18+ MrKrapkinе что Вы видеоуроки в т ясно. Ищите хорошего автора ) удачи. Отвечать не утруждайте себя. P.S. Но если бы вы потрудились зайти туда и посмотреть, увидели бы что там очень хорошее изложение материала - лучше не найти. ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 30.07.2019, 20:27 |  | ||
| 
помощь построить связи многие ко многим | |||
|---|---|---|---|
| #18+ Sergueiясно. Ищите хорошего автора ) удачи. Отвечать не утруждайте себя. P.S. Но если бы вы потрудились зайти туда и посмотреть, увидели бы что там очень хорошее изложение материала - лучше не найти. Вообще-то я потрудился и зашел на сайты O'reilly, Williams еще до того как Вы начали менторски меня поучать. Благодарю за внимание. Занавес. ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 30.07.2019, 20:38 |  | ||
| 
помощь построить связи многие ко многим | |||
|---|---|---|---|
| #18+ MrKrapkin, Вы весьма чудной персонаж. Вы смешно надуваете щеки и, в то же время, помощь просите. Так оно не полетит. Бесплатный совет: если вы не хотите, что с вами общались "как с наглым школьником", не ведите себя как наглый школьник. Ваши критерии качества ожидаемого ответа просто уморительны -- оказывается, сопоставимы они, понимаешь ли, быть должны с какими-то там именами. И президентом заверены быть должны, ага. Ну и я отмечаю ваши комплименты персоналиям отвечающих. Прям, вижу толпы выстроившихся, которые вам хотят помочь. ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 31.07.2019, 01:03 |  | ||
| 
помощь построить связи многие ко многим | |||
|---|---|---|---|
| #18+ MrKrapkinSergueiемое! в гугле скорее набирайте! теряете драгоценные минуты. На интуит.ру  есть хороший материал Да ты чертов гений! Как же это я такой идиот не догадался? Вопрос подразумевал отбросить в сторону книги-мусор и обратить внимание на действительно хорошую литературу касательно предмета. Все еще актуален. Дейт. "Введение в системы баз данных" ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 31.07.2019, 06:50 |  | ||
|  | 

| start [/forum/topic.php?fid=32&fpage=5&tid=1539923]: | 0ms | 
| get settings: | 9ms | 
| get forum list: | 12ms | 
| check forum access: | 3ms | 
| check topic access: | 3ms | 
| track hit: | 33ms | 
| get topic data: | 10ms | 
| get forum data: | 2ms | 
| get page messages: | 54ms | 
| get tp. blocked users: | 2ms | 
| others: | 230ms | 
| total: | 358ms | 

| 0 / 0 | 
