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

 Смежные вопросы

  • Нет связанных вопросов^_^