Поиск…


замечания

Объяснение того, почему вы хотите использовать наследование в PostgreSQL, можно найти здесь: http://stackoverflow.com/a/3075248/653378

Создание таблиц для детей

CREATE TABLE users (username text, email text);
CREATE TABLE simple_users () INHERITS (users);
CREATE TABLE users_with_password (password text) INHERITS (users);

Наши три таблицы выглядят так:

пользователи

колонка Тип
имя пользователя текст
Эл. адрес текст

simple_users

колонка Тип
имя пользователя текст
Эл. адрес текст

users_with_password

колонка Тип
имя пользователя текст
Эл. адрес текст
пароль текст

Изменение таблиц

Давайте создадим две простые таблицы:

CREATE TABLE users (username text, email text);
CREATE TABLE simple_users () INHERITS (users);

Добавление столбцов

ALTER TABLE simple_users ADD COLUMN password text;

simple_users

колонка Тип
имя пользователя текст
Эл. адрес текст
пароль текст

Добавление одного и того же столбца в родительскую таблицу объединит определение обоих столбцов:

ALTER TABLE users ADD COLUMN password text;

УВЕДОМЛЕНИЕ: слияние определения столбца «пароль» для дочерних «simple_users»

Удаление столбцов

Используя наши измененные таблицы:

ALTER TABLE users DROP COLUMN password;

пользователи

колонка Тип
имя пользователя текст
Эл. адрес текст

simple_users

колонка Тип
имя пользователя текст
Эл. адрес текст
пароль текст

Поскольку мы сначала добавили столбец в simple_users , PostgreSQL гарантирует, что этот столбец не будет simple_users .

Теперь, если бы у нас был другой дочерний стол, его password столбец, конечно, был бы удален.



Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow