0

artwork.jpg我们如何处理数据库模式与唯一具有每种类型数据的图形类型?

我想开发一个图形解决方案,但坚持在类型问题上如何将其编码到数据库模式。我刚开始了解父母和外键的概念。

艺术品属于类别类型,如照片,乐谱,绘画,雕塑。我所做的事情是为艺术作品创建了一个表格,并为类别类型创建了一个表格,并将外部关键字链接到主要艺术品表格。如果照片具有特定或独特的信息(如照片格式和拍摄日期)会怎么样?为了规范这一点,我们是否需要一个单独的表来容纳照片信息?

如何转换图表模式?请参阅附件artwork.jpg中的图表。我不仅将艺术作品表链接到类别,每个类别类型还将有一个单独的表格,以便为照片,作曲家名称和乐谱的长度(分钟)带来独特的信息,如照片格式。请帮助阐明这一点。谢谢。


 

 
public function up() 
 
    { 
 
     Schema::create('artwork', function (Blueprint $table) { 
 

 
      
 

 
      $table->increments('id'); 
 
      $table->string('title'); 
 

 
      //this is foreign key to the categories table 
 
      $table->integer('category_id')->nullable()->unsigned(); 
 
      $table->foreign('category_id')->references('id') 
 
        ->on('categories') 
 
        ->onDelete('cascade'); 
 
      
 
      $table->string('author'); 
 
      $table->string('groupcountry'); 
 
      $table->string('year'); 
 
      $table->string('description'); 
 
      
 
     }); 
 
    } 
 

 
============================= 
 

 
class CreateCategoriesTable extends Migration 
 
{ 
 
    /** 
 
    * Run the migrations. 
 
    * 
 
    * @return void 
 
    */ 
 
    public function up() 
 
    { 
 
     Schema::create('categories', function (Blueprint $table) { 
 
      $table->increments('id'); 
 
      $table->string('category_name'); 
 
      $table->string('category_description'); 
 
      
 
     }); 
 
    }

回答

1

如果你是刚开始了解主键和外键的概念,那么你可能才刚刚在关系数据库设计开始。有很多东西需要学习,尽管在你学习很多东西之前你可以开始使用简单的案例。

您可能希望了解的一个概念是HAS-A关系和IS-A关系之间的区别。 HAS-A关系的一个例子可能是艺术家和艺术品之间的关系(与你的问题无关)。 HAS-A关系贯穿于所有教程中,可以帮助您快速掌握数据库设计。

IS-A关系更加微妙,数据库教程通常没有清楚地表达这一点。一个IS-A关系的例子是照片和艺术品之间的关系。一张照片是一件艺术品。这通常是一对一的关系,并且通常是类 - 子类(类型 - 子类型)情况的实例。情况就是这样。照片,乐谱,绘画,雕塑都是艺术品的亚型。

对于具体的技术,我建议你看看在信息和这三个标签下分组的问题:

+0

谢谢您沃尔特指着我的资源 – BraveHeart

相关问题