Relationship Between Students, Parents and Guardians Assume I use MySQL, and there are two tables, students and parents_guardians table. Table students is used to store students' data. The parents_guardians table is used to store students' parents and  students' guardians.
So either a student can have a father and a mother as his parents, or a student can have an uncle and an aunt as his guardians. To do that, I add one more table as pivot table, which is students_parents_guardians table.
This pivot table contains 3 columns:

students_id
parents_id
guardians_id

The question is:
Is this good design? And how can I do that in Laravel?
So far, I'm unable to do that. What I can do is create 5 table:

students table to store student's data
parents table to store parents' data
students_parents as pivot table to perform relationship between students
and parents.
guardians table to store guardian's data
students_guardians as pivot table to perform relationship bwtween students
and guardians.

I believe this is a bad idea, and I should normalize all of it.
Your design with 5 tables is more normalized than your initial design, and makes more sense.
When you say &quot;pivot table&quot; it sounds like you mean a linking table. Since the relationship between students and parents (and also between students and guardians) is a many-to-many relationship being that a student can have up to two parents, and a parent can have multiple children (students) then this is the proper way to relate the two tables in a normalized form, and good design.
The only thing I think you could do is consolidate the parents and guardians into one Table (assuming they have basically the same attributes) and have a type field to determine if it's a parent or guardian. If there's only two types, you can use a boolean datatype field called IsParent, or with more types you can create an enum table called RelationshipTypes (or something similar) and store the ID in your consolidated Table, for normalization.
The IsParent field would be best to put on the linking table, that way a Guardian can be a parent to one Student but only a Guardian to another Student (who isn't related by blood) in cases of like adoption, etc.
Here's a sqlfiddle to illustrate the above, with some tweaks.