@TopClans

Как спроектировать систему учёта аналогов?

Уже для нескольких проектов нужны будут системы аналогов/синонимов/замен. Использую PHP и MySQL.

Возьмём для примера цвета:
красный, бардовый, алый;
синий, голубой, бирюзовый;
зелёный, изумрудный, салатовый;

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

Задача простая - хранить (с возможностью редактирования, конечно) все оттенки и связи между ними, и иметь возможность получить все оттенки какого-то цвета при запросе.
То есть захотел посмотреть все оттенки красного - получил "бардовый, алый". Захотел посмотреть аналоги бардового - получил "красный, алый".

На ум приходит простой вариант таблицы:
id | colors
1 | array(1, 2, 3)
2 | array(4, 5, 6)
3| array(7, 8, 9)

появился новый цвет без аналогов - будет просто
4 | array(10)

появился новый цвет в качестве аналога существующей линейки (ну там огненно-красный в линейку красных цветов) - изменили запись:
1 | array(1, 2, 3, 11)

в основной таблице цветов в отдельном поле указана группа синонимов, то есть для красного, бардового, алого - это будет "1", для синих цветов - "2", для зеленых - "3", и тд.

Будет ли это правильно?
  • Вопрос задан
  • 39 просмотров
Пригласить эксперта
Ответы на вопрос 1
Serhioromano
@Serhioromano
Web Developer
Это будет абсолютно не правильно. Сколько цветов ты будешь хранить в базе? 16 000 000 что бы 24 бита глубины цвета получить? Если нужно будет больше?

Нужно почитать тебе теорию цвета. Цвет это номер, и алгоритмы формирования цвета имеют свои паттерны. Так если иметь номер цвета, то при помощь форму можно получить оттенки того же цвет, или схожие оттенки, оттенки по яркости, или насыщенности, можно будет получить цвета подходящие к этому тону, это могут быть совершенно разные цвета как например фиолетовый и серо голубой.

Вообще что бы дать квалифицированный ответ, нужно понять не как ты планируешь делать или что ты хочешь делать, а задачу целиком. Для чего этот алгоритм? Для чего будет использоваться результат подбора. Ведь подбор цветов для дизайнер для создания палитры сайта, и подбор цвета для светового шоу, это разные вещи. Если в первом случае можно вообще оттолкнуться от красивой картинки и взять ее палитры, то во втором случае нужны будут алгоритмы генерации цветов.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы