Согласно ответу Джо Стефанелли, вы не можете подразделить столбец.
Такое ощущение, что вы пытаетесь рассматривать каждый столбец как структуру или класс, свой собственный. Вам лучше думать о TABLE как о структуре, а каждое поле - как о примитиве.
самое близкое к тому, что вы просите, - это создать 12 столбцов и присвоить им имена (C1_Pos, C1_Neg, C2_Pos, C2_Neg и т. Д.) Или создать две таблицы.
В одной таблице будут столбцы первичного ключа, а затем два столбца значений; positive
и negative
. Каждая запись в основной таблице будет ссылаться на эту таблицу.
Например ...
CREATE TABLE value_pair (
id INT,
positive INT,
negative INT,
PRIMARY KEY (id)
);
CREATE TABLE master (
id INT,
value_pair_id_1 INT,
value_pair_id_2 INT,
value_pair_id_3 INT,
value_pair_id_4 INT,
value_pair_id_5 INT,
value_pair_id_6 INT,
PRIMARY KEY (id),
FOREIGN KEY (value_pair_id_1) REFERENCES value_pair (id),
FOREIGN KEY (value_pair_id_2) REFERENCES value_pair (id),
FOREIGN KEY (value_pair_id_3) REFERENCES value_pair (id),
FOREIGN KEY (value_pair_id_4) REFERENCES value_pair (id),
FOREIGN KEY (value_pair_id_5) REFERENCES value_pair (id),
FOREIGN KEY (value_pair_id_6) REFERENCES value_pair (id)
);
Затем, однако, вы вынуждены объединить две таблицы, когда захотите получить одно из значений. И если вы хотите ВСЕ значения, вы должны присоединиться 6 раз ...
SELECT
*
FROM
master
INNER JOIN
value_pair AS [VP1]
ON master.value_pair_id_1 = [VP1].id
INNER JOIN
value_pair AS [VP2]
ON master.value_pair_id_2 = [VP1].id
INNER JOIN
value_pair AS [VP3]
ON master.value_pair_id_3 = [VP1].id
INNER JOIN
value_pair AS [VP4]
ON master.value_pair_id_4 = [VP1].id
INNER JOIN
value_pair AS [VP5]
ON master.value_pair_id_5 = [VP1].id
INNER JOIN
value_pair AS [VP6]
ON master.value_pair_id_6 = [VP1].id
Лично я бы просто использовал 12 столбцов ...