首页 > 解决方案 > Laravel 中具有不同类型幻灯片的滑块的数据库模式

问题描述

每个滑块都有许多幻灯片,但有两种类型的幻灯片:

  1. 幻灯片,当我们点击它们时,会打开一个 URL
  2. 幻灯片,当我们单击它们时,将打开一个视频

我认为最好有一个这样的滑块表:

CREATE TABLE sliders
(
    id int NOT NULL PRIMARY KEY,
    title varchar(100) NOT NULL 
);

然后两张像这样的幻灯片

CREATE TABLE image_slides
(
    id int NOT NULL PRIMARY KEY,
    title varchar(100) NOT NULL
    slider_id int not null 
);
CREATE TABLE url_slides
(
    id int NOT NULL PRIMARY KEY,
    title varchar(100) NOT NULL,
    url varchar(100) NOT NULL,
    slider_id int not null 
);

但是我不能$slider->slides一次用 Eloquent 获得所有类型的幻灯片(比如),因为我有



    /**
     * Get the SliderVideos for the Slider.
     */
    public function sliderVideos()
    {
        return $this->hasMany(\App\SliderVideo::class);
    }


    /**
     * Get the SliderLinks for the Slider.
     */
    public function sliderLinks()
    {
        return $this->hasMany(\App\SliderLink::class);
    }

那么更好的数据库模式是什么?

标签: mysqldatabaselaraveleloquentorm

解决方案


推荐阅读