LINUX.ORG.RU

Представление Табличных документов в БД


0

1

Пытаюсь изобрести велосипед. Подскажите, как же правильнее будет хранить Табличные документы в БД? Например, имеется такой документ, каким образом его представить? Хочется добиться того, чтобы через веб можно было создавать такие документы (как обычный док).


Подскажите, как же правильнее будет хранить Табличные документы в БД?

Всё сведётся к хранению строки.

i-rinat ★★★★★ ()

звисит от требуемой гибкости. Если список (и типы) колонок фиксирован, то просто колонка табличного документа = колонка таблицы БД.

Если же произвольный *.xls, то таблица будет с колонками doc_id, cell_x, cell_y, text (ну и по желанию, rowspan, colspan, border_x, border_y, ...).

monk ★★★★★ ()

Может есть какая-нибудь литература? Я же не первый с этим сталкиваюсь.

Temp ()

Если тебе не нужно _программно_ обрабатывать этот документ как таблицу (т.е. где-то суммировать, перебирать строки, группировать по ней где-то в серверном коде или SQL) - то храни блобом/строкой (xml/json/csv/etc) и не парься.

Еще вариант - хранить в БД в виде «1 ячейка = 1 запись в БД», с указанием координат ячеек. Это в том случае, если надо быстро бегать по ячейкам в серверной обработке.

Не вздумай лепить жесткие соответствия пользовательской таблицы и таблицы в БД.

dib2 ★★★★★ ()
Ответ на: комментарий от dib2

Увы, но блоб отпадает.
Нужно будет потом брать несколько документов от разных подразделений и выводить общий отчет. Со всякими группировками, итогами и т.п.

Но мне кажется, что я знаю как можно сделать.
1. Создать таблицу, которая будет хранить категории документов.
2. Создать таблицу, которая будет хранить номера документов (и включать в себя инфу о категории, владельце и т.п.)
3. Создать таблицу, которая будет хранить типы записей (описание из 1-го поля таблицы документа, принадлежность к категории и порядок).
4. А вот тут я не могу придумать как быть. У меня несколько таблиц (около 25). Или для каждой таблицы создать в БД таблицу, где каждое поле будет соответствовать столбцу, или как-то еще.

Temp ()

В общем понятно. Никто ничего толком не знает. Спрошу где-нибудь еще. Спасибо за внимание.

Temp ()
Ответ на: комментарий от Temp

Никто ничего толком не знает.

Это ты толком ничего не знаешь. :) Даже вопрос задать не в состоянии. Пересказывать книгу про реляционные БД тебе никто не будет. Сам читай.

vada ★★★★★ ()
Ответ на: комментарий от vada

Да, не знаю. Потому и спросил. Знал бы, тогда бы не стал спрашивать. Разве это не очевидно?

Temp ()
Ответ на: комментарий от Temp

во первых, вас обманули :) у вас нет «Табличных документов» - у вас имеется неформализованная реляционная база. Какая есть, с секретаршами вместо индексов и т.д.

во вторых самый простой путь - «общая книга» (или как там её), во всяческих calc,exel - все ваши таблицы остаются как есть, а вы занимаетесь VB программированием/формированием общих итогов не трогая остальные подразделения

есть еще естественный кривой путь - кинуть все данные по вашему варианту №4 «для каждой таблицы создать в БД таблицу, где каждое поле будет соответствовать столбцу». До юзабельного варианта одним лицом нереализуемо - кто-то должен формализовать бизнес-процессы, кто-то должен приказным порядком менять сложившиеся устои, кто-то перегонять и проверять данные и программировать тоже кто-то должен.

MKuznetsov ★★★★★ ()
Ответ на: комментарий от MKuznetsov

Что-то как-то сложно. Мне кажется, будет достаточно иметь таблицу с данными от всех подразделений. Но доступ будет к определенными записям в рамках одного документа (вычислять его по номеру из пункта 2), т.е. пользователь будет думать, что работает с одним экземпляром в привычном ему виде. Т.к. кол-во документов ограничено и будет не более 25 шт., то создание для каждой категории своей таблицы не слишком большая плата.
В общем буду экспериментировать.

Temp ()

owl(rdf) + онтология

anonymous ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.