2010-06-04 2 views
0

Я хочу использовать тип данных SET для моего databse. Так что поле этого типа может содержать одно или несколько значений из этого типа данных.Тип данных, эквивалентный SET в базе данных?

Но я следующие два вопроса:

Q1. Возможно, SET подходит как для типа данных в базе данных? Я думаю, что он не поддерживается всеми базами данных.

Q2. Если SET не является хорошим вариантом, то что я могу использовать вместо SET?

ответ

0

Вы должны использовать таблицу для этого с помощью внешнего ключа:

YourTable 
col1 ... 
col2 ... 
YourTypeCol char(1) FK to YourTypeTable 
col4 ... 

YourTypeTable 
YourTypeCol    char(1) PK <<make the data type fix your "set" 
YourTypeColDescription string 

Так, например, вы хотите иметь такие данные:

CarTable 
CarID  int PK auto number 
CarMaker int FK 
CarBuilt date 
.... 

CarID CarMaker CarBuilt 
1  1   1/10/2005 
2  4   3/18/2004 
3  3   10/31/2009 
... 

CarMakerTable 
CarMake  int PK 
CarMakeName string 

CarMake CarMakeName 
1   Ford 
2   GM 
3   Honda 
4   Mazda 
... 

как для So that a field of that type can contain one or more values from that data type я бы не рекомендовал это. Лучше всего хранить только одно значение за «поле». Сохранение нескольких значений в одном поле противоречит принципу Database normalization и приведет к проблемам, когда вы пытаетесь вытащить отдельные элементы из «набора». Лучше всего разделить каждое значение на свою собственную строку, что означает изменение дизайна вашей таблицы. Предоставьте больше информации о данных, которые вы пытаетесь сохранить, и я могу рекомендовать структуру таблиц для вас.

+0

Мое поле является 'LicenseType' и может содержать несколько значений из' 2W, LMV, HMV' –

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