我正在建立一个平台,在该平台上,培训师可以将课程添加到他的个人资料中。但是在他添加课程之前,需要先完成应用程序的接受。
因此,我之前已将数据库分为三个部分:
users | trainer | course
经过一些研究,我发现我必须进行数据库规范化,但是在设置数据库时遇到了问题。
现在我有trainer
表trainer_experience
表和trainer_achievements
表。在培训师经验表中,我必须保存他们所从事的职位和公司名称的数据。
我的教练桌是这样:
<?php
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class CreateTrainersTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('trainers', function (Blueprint $table) {
$table->bigIncrements('id');
$table->unsignedBigInteger('user_id');
$table->date('date_of_birth');
$table->integer('mobile_number');
$table->longText('address');
$table->string('id_proof');
$table->string('id_registration_number');
$table->string('high_school_name');
$table->string('graduation_college_name');
$table->string('graduation_course_name');
$table->string('post_graduation_college_name');
$table->string('post_graduation_course_name');
$table->string('phd_field_of_study');
$table->string('total_duration_of_training');
$table->integer('no_of_people_trained');
$table->boolean('paid_training');
$table->string('training_category');
$table->string('course_material_ready');
$table->string('youtube_link')->nullable();
$table->string('twitter_link')->nullable();
$table->string('instagram_link')->nullable();
$table->string('facebook_link')->nullable();
$table->string('linkedin_link')->nullable();
$table->string('blog_link')->nullable();
$table->string('website_link')->nullable();
$table->string('meetup_group_link')->nullable();
$table->timestamps();
$table->index('user_id');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('trainers');
}
}
如何存储数据,以便至少可以按它们输入的顺序进行检索?我需要制作两个不同的表吗?我最好的选择是什么?
答案 0 :(得分:0)
trainer_experience
中的数据,并且trainer_achievements
是否可重用?trainer_experience
和trainer_achievements
相互依赖吗?