from sqlalchemy import Column, Integer, String, ForeignKey
from sqlalchemy.orm import declarative_base, relationship
Base = declarative_base()
class Student(Base):
__tablename__ = 'students'
id = Column(Integer, primary_key=True)
name = Column(String, nullable=False)
grades = relationship("Grade", back_populates="student")
class Teacher(Base):
__tablename__ = 'teachers'
id = Column(Integer, primary_key=True)
name = Column(String, nullable=False)
grades = relationship("Grade", back_populates="teacher")
class Subject(Base):
__tablename__ = 'subjects'
id = Column(Integer, primary_key=True)
name = Column(String, nullable=False)
grades = relationship("Grade", back_populates="subject")
class Grade(Base):
__tablename__ = 'grades'
id = Column(Integer, primary_key=True)
value = Column(Integer, nullable=False)
student_id = Column(Integer, ForeignKey('students.id'), nullable=False)
teacher_id = Column(Integer, ForeignKey('teachers.id'), nullable=False)
subject_id = Column(Integer, ForeignKey('subjects.id'), nullable=False)
student = relationship("Student", back_populates="grades")
teacher = relationship("Teacher", back_populates="grades")
subject = relationship("Subject", back_populates="grades")