SAWarning в flask-sqlachemy

Начинаю изучать flask и SQL. С таким описанием классов получаю

SAWarning: Table 'reviews' specifies columns 'id' as primary_key=True, not 
matching locally specified columns 'user_id', 'book_id'; setting the current 
primary key columns to 'user_id', 'book_id'. This warning may become an exception in a future release
      ", ".join("'%s'" % c.name for c in self.columns),

Как я понял, это связанно с двумя ForeignKey в Reviews. Но разве

__table_args__ = ( db.PrimaryKeyConstraint('user_id', 'book_id'), )

Не должно решать проблему?

Так же является ли двойной ForeignKey признаком плохого проектирования?

class Authors(db.Model):
    __tablename__ = 'authors'
    id = db.Column('id', db.Integer, primary_key=True)
    name = db.Column('name', db.String, nullable=False)


class Books(db.Model):
    __tablename__ = 'books'
    id = db.Column('id', db.Integer, primary_key=True)
    author_id = db.Column('author_id', db.Integer,
                          db.ForeignKey('authors.id'), nullable=False)
    name = db.Column('name', db.String, nullable=False)
    year = db.Column('year', db.Integer)


class Reviews(db.Model):
    __tablename__ = 'reviews'
    __table_args__ = (
        db.PrimaryKeyConstraint('user_id', 'book_id'),
    )
    id = db.Column('id', db.Integer, primary_key=True)
    book_id = db.Column('book_id', db.Integer,
                        db.ForeignKey('books.id'), nullable=False)
    user_id = db.Column('user_id', db.Integer,
                        db.ForeignKey('users.id'), nullable=False)
    rating = db.Column('rating', db.String, nullable=False)
    comment = db.Column('comment', db.String)

Ответы (0 шт):