- книги
- Американские авторы
- Британские авторы
Как реализовать такое условие внешнего ключа в SQLAlchemy?
Мне бы хотелось иметь один столбец для обработки ссылки.
Мой подход до сих пор заключался в создании абстрактный класс Author, от которого наследуются AmericanAuthor и BritishAuthor, а внешний ключ Book указывает на родителя.
Код: Выделить всё
class Author(Model):
__abstract__ = True
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String)
class AmericanAuthor(Author):
__tablename__ = 'american_author'
# some other stuff
class BritishAuthor(Author):
__tablename__ = 'british_author'
# some other stuff
class Book(Model):
__tablename__ = 'book'
title = db.Column(db.String)
author_id = db.Column(db.Integer, db.ForeignKey("author.id"))
Код: Выделить всё
sqlalchemy.exc.NoReferencedTableError: Foreign key associated with column 'books.author_id' could not find table 'author' with which to generate a foreign key to target column 'id'
Подробнее здесь: https://stackoverflow.com/questions/570 ... ple-tables