This forum has moved to a new location and is in read-only mode. Please visit talk.octobercms.com to access the new location.
Hello, I would like to make a plugin for a ballet school and have some troubles with the relation management. DB-structure looks like this: tables: courses id title slug description
teachers
    id
    first_name
    last_name
    email
rooms
    id
    name
    description
lessons
    id
    day
    time_from
    time_to
    teacher_id
    room_id
courses_teachers
    course_id
    teacher_id
relations:
    courses -> teachers     belongsToMany
    teachers -> courses     belongsToMany
    courses -> lessons  hasMany
    lessons -> courses  belongsTo
    lessons -> rooms    hasOne
    lessons -> teachers     hasOne
    rooms -> lessons    belongsTo
    teachers -> lessons     belongsTo
My questions: Are these relations correct and where I have to place which config_relation.yaml
I might be somewhat late here, but here are my thoughts:
Your fields are defined right, although your models should be named without an 's'. (not plural, but singular: teacher instead of teacherS, rooms instead of room etc..). Next to that you seem to be switching out the belongs/has relationships:
The teachers->lessons relationship. A teacher HasMany lessons (a lesson belongsTo a teacher).
HasOne/HasMany
A teacher hasMany lessons. This means that the lessons table has the foreign key: teacher_id . BelongsTo is just the opposite. If a model Foo  belongsTo model Bar, it means that Foo has the Foreign Key: Bar_id.
See This link for some more explanation.
Oh and remember: Courses -> Teachers will need a pivot table because of the many->many relationship!
1-2 of 2