2015-06-05 3 views
0
CREATE TABLE user (
... 
columnName int ARRAY[7][7] DEFAULT null, 
... 
) 

Мне нужно создать таблицу, в которой один из столбцов должен хранить массив 7x7, но я не могу понять это!Можно ли объявить столбец данных массива? SQL

Возможно ли это в SQL?

- ОБНОВЛЕНИЕ Итак, я решил, что я собираюсь обмануть его и сохранить его как текст, а затем с кодом Я буду работать с этой строкой

+3

Некоторые базы данных, такие как postgres, поддерживают это, но с точки зрения реляционного дизайна это не очень хорошая идея в долгосрочной перспективе. – Lucas

+3

Это не часть стандарта SQL, за исключением строк, состоящих из символов. Некоторые базы данных могут поддерживать массивы или подобные конструкции. –

+1

В стандартном SQL существует один тип данных * designed * для хранения нескольких значений - таблица. Вы можете построить один с двумя столбцами со значимыми именами для индексов и ограничить их только значениями между 0-6 (или 1-7, в зависимости от вашего прогноза), одним столбцом со значимым именем для * значений * и затем дополнительный столбец (ы) для внешнего ключа обратно в таблицу 'user'. –

ответ

1

SQL 2003 (и в меньшей степени SQL 99) предоставляют типы массивов, см. Здесь: http://farrago.sourceforge.net/design/CollectionTypes.html Я использовал их широко с PostgreSQL для упрощения моих проектов. Для клиентов, которые еще не поддерживают семантику массива, можно предоставить представления, которые «не проверяют» массивы.

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