Тип данных, эквивалентный SET в базе данных? - PullRequest
0 голосов
/ 04 июня 2010

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

Но у меня есть два вопроса:

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

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

1 Ответ

0 голосов
/ 04 июня 2010

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

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 Я бы не рекомендовал это. Рекомендуется хранить только одно значение для каждого «поля». Хранение нескольких значений в одном поле противоречит принципу Нормализация базы данных и приведет к проблемам при попытке извлечь отдельные элементы из «набора». Лучше всего разбить каждое значение на отдельную строку, что означает изменение дизайна таблицы. Предоставьте больше информации о данных, которые вы пытаетесь сохранить, и я могу порекомендовать вам структуру таблицы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...