2009-06-15 6 views
1

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

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

Текущая структура базы данных следующая.

столбец таблицы column_id INT column_name NVARCHAR (50)
COLUMN_TYPE NVARCHAR (50)

Значение Содержание Таблица criteria_id INT column_id INT row_id INT column_contents NVARCHAR (100)

+0

Будь более конкретным. Какие данные вы храните? Не могли бы вы привести пример вашей таблицы? –

+0

Почему вы используете хранилище ключей/значений? он должен быть быстрым. – Pierre

+2

OMG что? Это то, что вы действительно хотите делать? –

ответ

2

A наивный схема для хранения слизняка dsheet:

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 
); 
+0

Я не вижу необходимости в «id» в ячейке, не мог ли первичный ключ быть включен (spreadsheet_id, row, col)? –

+0

Я знаю, что в этом есть споры, а те, кто с другой стороны, чувствуют себя так же сильно, но составные ключи IMHO злы (кроме таблиц разрешения M-> M). – RolandTumble

+0

Спасибо Пьер, у меня есть аналогичная структура прямо сейчас, но это дает мне проблему с производительностью, когда мне приходится загружать большое количество данных на веб-страницу с разбивкой на страницы. Обычно я должен показать 30-40 столбцов и 10 000 строк (размер страницы = 1000) – 2009-06-16 17:00:21

0

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

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

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

+0

Сначала я извлекаю все данные из базы данных, а затем перебираю их, чтобы показать их на странице в структуре сетки. – 2009-06-16 17:21:32

0

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

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

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