Правильный способ обработки взаимозависимостей для конфигуратора (JavaScript) в таблицах базы данных - PullRequest
0 голосов
/ 14 февраля 2012

Мне тяжело с этим проектом, я создаю конфигуратор лодки, который разделен на категории / пакеты / дополнения.

Каждая категория не связана с другой, так что это не большая проблема.

Проблема выходит с пакетами и дополнениями. Дополнительно - это опции, которые можно выбрать в пакете (увеличив общую стоимость). Я объясню все зависимости, которые могут существовать между этими двумя объектами:

  1. В некоторых случаях вы также можете приобрести пакет вместе, у которого может быть дополнительное (или 2) обновление до этого пакета
  2. Бывают случаи, когда вы можете купить одну упаковку от 4 до 5, и дополнительно вы можете купить дополнительные услуги в другой 6-й упаковке
  3. Иногда дополнительные могут быть куплены, только если у вас есть хотя бы один предмет в данной упаковке
  4. Иногда дополнительный можно купить, только если у вас есть определенный дополнительный

В данный момент у меня нет никакой другой зависимости (но я уверен, что есть и другие возможные).

Я не знаю, какой подход я должен использовать для хранения всех этих зависимостей, у меня есть 3 базовые таблицы sql (категория, пакет, дополнительные, которые не связаны, потому что пакет => Дополнительная зависимость может отличаться для других категорий) и CategoryRelationship, PackageRelationship, ExtraRelationship, но мне трудно выразить некоторые зависимости, особенно 2-е, которое не ограничивается одним полем идентификатора.

Как обычно обрабатываются все эти взаимозависимости?

Я никогда не сталкивался с этой проблемой, спасибо за любые предложения

Редактировать 1:

Я подумываю об изменении подхода к 1 таблице для каждого «типа» зависимости, можно ли считать ее хорошим способом обработки вместо одной таблицы со всеми типами зависимостей?

1 Ответ

0 голосов
/ 17 февраля 2012

Поскольку никто не ответил на этот вопрос, я публикую информацию о подходе, который я наконец-то использовал для этого проекта и который я нахожу интересным.

Я создал 1 таблицу для каждого типа зависимости (как я уже говорил в Edit 1),Каждая таблица может иметь множественную ссылку на элемент любого идентификатора и, таким образом, можно довольно хорошо организовать все столбцы, которые представляют зависимости.

Подход основан на модели валидации CakePHP, где каждая валидация является классом, которыйимеет метод validate, который будет запущен.

Надеюсь, это поможет кому-то еще;Я отмечу это как ответ, если никто не предоставит ответ с лучшим предложением.

...