maddog670
@maddog670

Правильная структура таблиц для поддоменов?

Добрый вечер. Перейду сразу к сути.
Есть проект, который предполагает создание поддоменов пользователями. Гости регистрируются как пользователи, после чего, пользователь может себе создать поддомен 3го уровня, http://test.site.ru. На поддоменах должна быть возможность создавать категории и статьи на этом поддомене. Как правильно спроектировать структуру статей, категорий, чтобы была привязка к поддомену, тобишь на поддомене TEST... показывались только категории и статьи относящейся к этому поддомену. Я накидал примерную структуру, но не могу понять, где именно делать привязку к поддомену, толи в категориях, то ли в самих статьях... Подскажите, как будет правильнее?

Таблица категорий
spoiler
Schema::create('categories', function (Blueprint $table) {
            $table->increments('id');
            $table->integer('parent_id')->unsigned()->nullable()->default(null);
            $table->foreign('parent_id')->references('id')->on('categories')->onUpdate('cascade')->onDelete('set null');
            $table->integer('sort')->default(0);
            $table->string('name');
            $table->string('slug')->unique();
            $table->integer('visibility')->default(1);
            /*$table->integer('domain_id');
            $table->foreign('domain_id')->references('id')->on('domains')->onDelete('cascade');
            $table->unsignedInteger('domain_id')->index('domains_category_id_index');*/
            $table->string('type');
            $table->string('meta_description');
            $table->string('meta_keywords');
            $table->timestamps();
        });


Таблица статей
spoiler
Schema::create('articles', function (Blueprint $table) {
            $table->increments('id');
            $table->unsignedInteger('category_id')->index('articles_category_id_index');
            $table->unsignedInteger('user_id')->index('articles_user_id_index');

            $table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
            $table->foreign('category_id')->references('id')->on('categories')->onDelete('cascade');

            $table->string('title');

            $table->string('slug')->unique()->index('articles_slug_index');
            $table->longText('content_source');
            $table->longText('content_rendered');
            $table->tinyInteger('visibility')->default(1);

            $table->text('meta_description');
            $table->text('meta_keywords');

            $table->timestamp('published_at');
            $table->timestamps();
        });
  • Вопрос задан
  • 96 просмотров
Решения вопроса 1
@luna3956
При создании очередного поддомена пользователем добавляете поддомен в табличку Поддомены(id, name, user_id), а в таблицу Статьи просто добавляете уникальное поле поддомен_id, и тогда каждая статья будет строго привязана к конкретному поддомену.

Либо же можете не добавлять в таблицу Статьи поле поддомен_id и определять принадлежность к поддомену посредством пользователя, добавившего статью. Делать это с помощью таблицы Поддомены, о которой написал выше. Но легче сразу добавить поле поддомен_id
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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