#sql #postgresql #insert #create-table
#sql #postgresql #вставить #создать таблицу
Вопрос:
Я пробую отношения «один ко многим» в postgresql, но ничего
Вот моя неправильная попытка
CREATE TABLE person_basic_info (
id INT NOT NULL PRIMARY KEY,
gender VARCHAR (50) NULL,
first_name VARCHAR (150) NULL,
last_name VARCHAR (150) NULL,
email VARCHAR (50) NULL,
political_view_id INT NULL,
cambridge_analytica_psychographics_id INT NULL REFERENCES persons_features (id),
revolution_sympathy int NULL,
iq_level INT NULL
);
Создание функций person
CREATE TABLE persons_features (
id INT NOT NULL PRIMARY KEY,
dominate_feature VARCHAR (100) NULL
);
--person_basic_info
insert into person_basic_info(id, gender, first_name, last_name, email, political_view_id, cambridge_analytica_psychographics_id,revolution_sympathy,iq_level) values (1,'Female','Corenda','Garrood','cgarrood0@yellowbook.com',6,2,0,86);
insert into person_basic_info(id,gender, first_name, last_name, email, political_view_id, cambridge_analytica_psychographics_id,revolution_sympathy,iq_level) values (2,'Male','Langston','McMychem','lmcmychem1@theatlantic.com',2,4,0,111);
insert into person_basic_info(id,gender, first_name, last_name, email, political_view_id, cambridge_analytica_psychographics_id,revolution_sympathy,iq_level) values (3,'Female','Robbyn','Imison','rimison2@geocities.com',14,3,1,98);
--persons_features
insert into persons_features (id, dominate_feature) values (1,'Agreeableness');
insert into persons_features (id, dominate_feature) values (2,'Conscientiousness');
insert into persons_features (id, dominate_feature) values (3,'Extraversion');
insert into persons_features (id, dominate_feature) values (4,'Neuroticism');
insert into persons_features (id, dominate_feature) values (5,'Openness');
Но ничего.
Не могли бы вы мне помочь?
Комментарии:
1. Если в таблицах при создании и вставке слишком много пересекающихся связей, если мне не изменяет память, хорошим подходом является использование переменных и / или временных внешних таблиц; кто-нибудь может подтвердить? (Меня также интересует этот вопрос)
2. в отношениях «многие ко многим» вам необходимо создать 3-ю таблицу при преобразовании из логической модели в физическую модель!
Ответ №1:
Если вы выполните эти запросы в правильном порядке, вы вообще не получите ошибок. Правильный порядок в этом случае должен быть:
- СОЗДАНИЕ ТАБЛИЦЫ persons_features
- СОЗДАЙТЕ ТАБЛИЦУ person_basic_info
- вставить в persons_features
- вставить в person_basic_info
В данном случае это не отношение «многие ко многим», если только person не может иметь более одного значения cambridge_analytica_psychographics_id
. Если это так, вам следует создать таблицу пересечений вместо ссылки на persons_features
таблицу.