2014-10-29 8 views

ответ

6

MySQL не поддерживает наследование таблицы. Единственный способ, чтобы приблизить функциональность с помощью внешнего ключа (который MySQL не слишком хорошо либо):

CREATE TABLE first (
    id serial, 
    PRIMARY KEY (id) 
); 

CREATE TABLE second (
    parent integer REFERENCES first, 
    PRIMARY KEY (parent) 
); 

Очевидно, что вы должны изменить любые мнения и запросы от PostgreSQL «наследование версии "к регулярным многосвязным запросам.

+0

есть ли определенная причина (например, связанная с производительностью), что MySQL не поддерживает ее? – sajadkk

+0

@sajadkk Мне не известны проблемы с производительностью с наследованием, но это относительно новая концепция и все еще имеет некоторые недостатки в реализации. Наследование PostgreSQL не является, например, SQL-совместимым, и не все ограничения наследуются, поэтому нужно быть очень осторожными при работе с наследованием. (MySQL, кстати, гораздо менее совместим с SQL-стандартом, чем PostgreSQL, хотя в последнее время я не проверял улучшения.) Если вы * действительно не нуждаетесь в наследовании для какой-либо модели данных, вам, вероятно, лучше со стандартной реляционной структурой. – Patrick

+2

«* но это относительно новая концепция *» - это на самом деле не так. Объектные реляционные концепции возвращаются к 80-м годам –

Смежные вопросы