2010-03-08 3 views
0

Я читал о inheritance feature в PostgreSQL, который казался довольно опрятным. К сожалению, я вынужден использовать MySQL. Как бы вы сделали что-то подобное в чистом виде?MySQL: Inheritance

Скажет вам, например, было два следующих классов, которые вы хотите работать с:

User 
˪ Id 
˪ Name 
˪ Password 

Employee : User 
˪ Pay 

Как бы вы сохранить их в базе данных MySQL, так что они могут быть выбраны из, например, PHP в достаточно чистом путь? Мне нужно, например, получить всех пользователей, включая сотрудников, только сотрудников, найти, если пользователь также является сотрудником и так далее.

Ищет общий совет, а не конкретное решение для этого случая. Например, я вижу, что я могу просто добавить столбец Pay в таблицу Users, но мне не очень нравится эта идея, так как она быстро станет очень грязной, если потребуется больше подклассов.

ответ

2

Добавить поле в Employee которое является внешним ключом User. Вам все равно придется выполнять соединение по столам, но это лучше, чем ничего.

+0

Значит, это будет отношение 1-1, а таблица 'Employees' будет иметь столбец' user_id' или что-то в этом роде? – Svish

+0

Точный. Вы также можете завершить объединение в представлении, чтобы, по крайней мере, когда вы читали/отображали свои данные, две (или более) таблицы выглядят как одна отдельная таблица для вашего кода. –