2016-01-23 37 views
0

我有這個學校的學生數據庫。比方說,例如,一名學生的學生證是098-123-123。我希望那個學號是主鍵。建議使用字符串而不是增量?我是否需要更改表格的結構並更改laravel中的默認增量('id')?這裏最好的做法是什麼?我是否需要將學生ID定義爲主鍵並更改laravel中雄辯orm的默認ID?

Schema::create('users', function (Blueprint $table) { 
     $table->increments('id'); 
     $table->string('privillege'); 
     $table->string('password', 60); 
     $table->rememberToken(); 
     $table->timestamps(); 
    }); 
+1

最佳做法是將主鍵保留爲「增量」。你可以爲學號添加另一列,並將其設置爲「唯一」。例如:'$ table-> string('student_number') - > unique();' – smartrahat

回答

1

我會繼續自動遞增ID,並使用另一列爲自己的學生證098-123-123編入索引的和獨特的。然後創建一個範圍,以便能夠通過此Student ID快速搜索。

public function scopeFindByStudentId($query, $id) 
{ 
    $query->where('student_id', '=', $id); 
} 
+0

@蘑菇感謝您的回覆。是的,你明白了。但現在的問題是,我是否需要將student_id設置爲字符串或整數? –

+0

如果你在你的例子中有破折號,它應該是一個字符串'$ table-> string('student_id',11)'或者任何你需要的長度。 – Mushr00m

+0

@JayGorio它適合你嗎? – Mushr00m