Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.04.11;
Скачать: CL | DM;

Вниз

Массивы в Базе данных.   Найти похожие ветки 

 
Balkon   (2004-04-12 15:52) [0]

Приветствую, Мастера. Создаю приложение и базу(впервые:)), которая должна хранить параметры и результаты неких экспериментов. Некоторые из результатов эксперимента являются численными массивами.

Каждая запись в моей таблице хранит сведения об одном эксперименте. С сохранением параметров простого типа проблем нет. Но вот в полях какого типа можно хранить массивы? Пока что обхожусь заведением отдельного поля соответствующего типа для каждого элемента массива. :) Для тестирования приложения этого хватает. Но для нормального рабочего приложения понимаю, что это не правильно.

Каким образом (в полях какого типа) обычно хранятся массивы действительных/целых чисел в базе данных (Парадокс)?

Спасибо.


 
Vlad ©   (2004-04-12 15:55) [1]


> Balkon   (12.04.04 15:52)  

Зачем такой изврат ? Таблица - и есть массив.

> Каким образом (в полях какого типа) обычно хранятся массивы
> действительных/целых чисел

Ты про реляционные БД что нибудь слышал ? Их умные люди придумали чтобы не извращаться с массивами.


 
Johnmen ©   (2004-04-12 15:56) [2]

1. Заведи столько детальных таблиц, сколько срезов результата надо.
2. Или используй поле типа BLOB


 
Balkon   (2004-04-12 16:30) [3]

Спасибо.

>Ты про реляционные БД что нибудь слышал? :) Читаю на досуге книженцию Гофмана, Хомоненко.

>Заведи столько детальных таблиц, сколько срезов результата надо.

Правильно ли я понял?:

Мне нужно, скажем, завести две таблицы и для каждого эксперимента в первой(главной) сохранять основные параметры, а во второй (подчиненной)заведу, кроме ключевого и поля связи, N однообразных ,например действительных, полей для хранения результатов эксперимента (элементов действительного массива).

Но в таком случае вопрос. Если заранее длина массивов с результатами эксперимента не известна и меняется от записи к записи, то нужно в RunTime добавлять(удалять, елси из таблицы удаляется самая длинная запись) необходимые поля?

зы Просьба ногами не пинать и не издеваться :). Добросовестно читаю пару книжек по Делфи, базам данных и пытаюсь разобраться.


 
Johnmen ©   (2004-04-12 16:33) [4]

>длина массивов с результатами эксперимента не известна

В детальной таблице это должно соответствовать количеству записей, а не полей...


 
Vlad ©   (2004-04-12 16:34) [5]


> Но в таком случае вопрос. Если заранее длина массивов с
> результатами эксперимента не известна и меняется от записи
> к записи, то нужно в RunTime добавлять(удалять, елси из
> таблицы удаляется самая длинная запись) необходимые поля?

Известна или не известна, какая разница, элементы массива (если он одномерный) располагаешь не в виде столбцов, а в виде записей.
Сколько эл-тов массива - столько записей.
Плюс поле с идентификатором для связки с мастер-таблицей.


 
Balkon   (2004-04-12 17:05) [6]

Спасибо опять. (Массивы используются одномерные)

Получается, что каждой записи из главной таблицы должен соответствовать столбец из детальной?

Т.е. в при добавлении новой записи в мастер-таблицу, я должен создать в детальной новый столбец(поле), назвав его , например,"LabNumber###" в соответствии с номером эксперимента ### из главной таблицы и занести в записи 1..N значения элементов массива(длиной N), добавляя их если нужно. А затем (при просмотре базы данных) при обращении к какойлибо записи из главной таблицы, нужно в детальной найти поле с именем FieldByName("LabNumber###") и с помощью методов First, Next... поочередно, перебрать значения .


 
Vlad ©   (2004-04-12 17:09) [7]


> Balkon   (12.04.04 17:05) [6]

Опять не так.
Есть у тебя главная таблица. Каждая запись - отдельная лаба.
Есть подчиненная таблица, с полями (№ лабы, значение)
Вот и все. Связка таблиц по полю №лабы, таким образом для каждой лаб. работы ты можешь записать сколько угодно значений массива.


 
Balkon   (2004-04-12 17:30) [8]

Теперь надеюсь, я правильно понял. :)

Еще вопрос, если не утомил.

А как быть с упорядоченностью значений эксперимента? Читал, вроде, что в Парадокс таблице записи упорядочиваюся по значению ключевого поля.
Обеспечит ли введение ключевого(например автоинкрементного типа) поля то, чтобы элементы массива, который сохранен в таблице, сохраняли порядок, при работе с БД? Или для того, чтобы не потерять порядок следования значений ввести еще поле, содержащее номер элемента экспериментального массива?


 
Vlad ©   (2004-04-12 17:34) [9]


> Balkon   (12.04.04 17:30) [8]

Достаточно ввести просто ключевое автоинкрементное поле, т.е. сортировка таблицы будет проходить по нему и все элементы массива будут отображаться в том порядке,в к-ром ты их добавлял в таблицу. Т.е. детальная таблица будет иметь вид: (Автоинкрементное_поле, №лабы, значение)


 
Balkon   (2004-04-12 17:35) [10]

Спасибо!



Страницы: 1 вся ветка

Текущий архив: 2004.04.11;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.031 c
1-1082631546
CraKer
2004-04-22 14:59
2004.04.11
Курсор..


14-1079423649
Gorlum
2004-03-16 10:54
2004.04.11
Помогите настроить


9-1070546076
miek
2003-12-04 16:54
2004.04.11
Предложение


7-1075527641
del_programmer
2004-01-31 08:40
2004.04.11
sound


4-1075910292
Unforseen
2004-02-04 18:58
2004.04.11
Замена юнита Forms на аналоги API