Хранить данные электронных таблиц в базе данных SQL

Я хочу сохранить данные электронной таблицы в базе данных, поэтому сейчас я использую шаблон ключ / значение для хранения того же самого, но это занимает слишком много времени, чтобы извлечь их из базы данных, если данные огромны. У кого-нибудь есть лучший способ сделать то же самое. Как Google сохраняет свои данные электронных таблиц?

Обычно мне приходится показывать от 30 до 40 столбцов и 10000 строк на веб-странице с размером страницы 500 или 1000 для разбивки на страницы. Данные для позиции с ценой.

Моя текущая структура базы данных, как показано ниже.

Столбец Стол Column_Id int Column_Name nvarchar (50)
Column_Type nvarchar (50)

Таблица значений содержания критерий_идентификатора int столбец_идентификатора_стандартного_строки_идентификатора_в_колонке_контента nvarchar (100)

 Matthew Jones15 июн. 2009 г., 23:10
Будьте немного конкретнее. Какие данные вы храните? Не могли бы вы привести пример вашей таблицы?
 Matt Rogish15 июн. 2009 г., 23:21
OMG что? Это то, что вы действительно хотите делать ??
 Pierre15 июн. 2009 г., 23:14
Почему вы используете тип хранилища ключей / значений? это должно быть быстро.
 amol16 июн. 2009 г., 19:09
Я обновил свой вопрос, пожалуйста, проверьте то же самое

Ответы на вопрос(3)

а не запрашиваете много, я бы порекомендовал поле XML для всего листа, или для каждой страницы, или, по крайней мере, для каждой строки.

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

Ваш дизайн может быть неоптимальным, но на самом деле он должен работать прилично для набора данных, который вы описываете, ИМХО.

 amol16 июн. 2009 г., 19:21
Сначала я выбираю все данные из базы данных, а затем перебираю, чтобы показать на странице в сетке.

A наивный Схема для хранения электронной таблицы:

create table spreadsheet
(
id INTEGER primary key,
name TEXT UNIQUE not null
);

create table cell
(
id INTEGER primary key,
spreadsheet_id INTEGER NOT NULL REFERENCES spreadsheet(id),
row INTEGER not null,
col INTEGER not null,
content TEXT NOT NULL
);
 brian-brazil15 июн. 2009 г., 23:31
Я не вижу необходимости в 'id' в ячейке, не может ли быть включен первичный ключ (spreadsheet_id, row, col)?
 RolandTumble16 июн. 2009 г., 00:35
Я знаю, что есть споры об этом, и те, с другой стороны, чувствуют себя так же сильно, но составные ключи ИМХО являются злом (кроме таблиц разрешения M-> M).
 Pierre16 июн. 2009 г., 20:14
Вот почему хранилище данных Key / Value показалось здесь очень полезным. Ключ - это упорядоченный объект (spreadsheet_id, row), а данные - это массив столбцов.
 amol16 июн. 2009 г., 19:00
Благодаря Пьеру, у меня сейчас похожая структура, но она дает мне проблему с производительностью, когда мне приходится загружать большой объем данных на веб-странице с нумерацией страниц. Обычно я должен показать от 30 до 40 столбцов и 10000 строк (размер страницы = 1000)

что Excel широко считается инструментом по умолчанию для базы данных, я не уверен, что есть какие-либо данные о видах данных, которые хранятся в электронных таблицах, за исключением того, что это одна таблица и существует ограничение на количество строк.

Я не думаю, что есть достаточное различие, чтобы сказать что-то еще, кроме «Именно данные определяют структуру, а не источник».

Ваш ответ на вопрос