@JohnxFFF

Как правильно организовать настройки для поддоменов?

Есть:
  • Общие настройки для всего сайта и поддоменов (например отключен ли сайт и тп)
  • Настройки для поддомена (название, город, и тп и тд)
  • Кастомные настройки, тоесть в настройках добавляешь ключ:значение

+ для некоторые настройки будут мультиязычные, например "название сайта", нужно хранить на разных языках

Вопрос, как изящно организовать работу и хранение этих настроек, если:
1. При создании поддомена, нужно скопировать для него все настройки, которые есть на других поддоменах
2. При создании кастомного поля, добавить его к всем поддоменам.

Пока реализовал так:
Есть таблица setting:
id | name | value | site_id | lang_id | autoload | type

где:
site_id - собственно сам поддомен
lang_id - язык
autoload - автозагрузка, тут понятно
type - тип настройки ( 0 - Общие, для всего сайта, 1 - Для основного домена (который нельзя удалить, 2 - Кастомные настройки)

Но мне это кажется очень костыльной схемой, но другой я пока не вижу, подскажите пожалуйста, как правильно организовать такой функционал ?
  • Вопрос задан
  • 297 просмотров
Решения вопроса 1
@immelnikoff
Изучаю БД
Была у меня совсем недавно очень похожая задачка, но не про настройки и поддомены, а про расписание вкл/выкл уличного освещения в городах и районах городов (можете посмотреть мои вопросы).
Я пришел к такому решению (в терминах вашей задачки):
5dc909784b6ac524597309.png
Данная схема мне нравится тем, что новый созданный домен наследует настройки от своих "родителей" без новых записей в таблицу Assignment. Но при этом, ничего не мешает явно кастомизировать настройки для данного домена, добавив записи в таблицу Assignment. Внешний код сначала ищет в Assignment настройки для данного домена, если их нет, то применят настройки родителей.
Хотелось бы услышать критику данного варианта схемы, так как она является моей придумкой (наверняка не уникальной) и я не до конца в нем уверен.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы