2011-12-16 4 views
0
DROP TABLE District_Info; 

CREATE TABLE District_Info(
Dname VARCHAR2(20) primary key, 
Boundary_dist VARCHAR2(20) 
); 

для этого кода, для каждого из них существует несколько Boundary_dist. было бы лучше, если бы я мог использовать массив varchar2 (20) и вставить как можно больше border_dist. захотите несколько полезных советов.хотите получить оптимальное решение для вставки более одного данных в один столбец одного ряда

+0

общий подход в реляционной да tabases - это «одни данные, одна строка», «много данных, много строк». Вероятно, вам придется пересмотреть структуру таблиц. –

+0

Почему это должно быть 1 столбец из 1 строки? Почему бы не сохранить 1 border_dist для каждой строки? Если вы ДОЛЖНЫ, вы можете попробовать использовать вложенные таблицы, но сначала подумайте об этом ... – tbone

ответ

4

Как уже упоминалось, идеальным способом сделать это будет сохранение дополнительной строки для каждой комбинации DName/Boundary_Dist. Самый простой способ сделать со структурой этой простой, чтобы просто изменить свой первичный ключ:

CREATE TABLE District_Info(
Dname VARCHAR2(20) primary key, 
Boundary_dist VARCHAR2(20) primary key); 

Если вы собираетесь нужны другие данные в этой таблице, имеющей 1: 1 корреляции в районе, вы бы лучше расщепление BoundayDist в отдельную таблицу:

CREATE TABLE District_Info(
Dname VARCHAR2(20) primary key, 
Other_info VARCHAR2(20) 
); 

CREATE TABLE District_Boundary(
Dname VARCHAR2(20) primary key, 
Boundary_dist VARCHAR2(20) primary key); 

Если вы действительно настаиваете на хранение более, что одно значения для каждой строки, вы можете использовать определенный пользователем типа данных:

create type varchar_20_list as table of varchar2(20); 

CREATE TABLE District_Info(
Dname VARCHAR2(20) primary key, 
Boundary_dist varchar_20_list); 
0

вам необходимо создать отдельную таблицу для Boundary_dist и создать внешний ключ, который ссылается на таблицу District_Info.

-2

Согласовано, было бы лучше иметь Boundary_dist во второй таблице и связать их с идентификатором, но если вы, как правило, должны делать то, что я делаю, это как «1,2,3,4,5» таким образом в коде я могу легко манипулировать с PHP с помощью explode или с mysql с помощью IN.

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

  • Нет связанных вопросов^_^