LINUX.ORG.RU

Структура хранения данных типа «Документ»

 


0

1

Задача, хранить документ в базе. Документ состоит:

  • Документ - «Наименование», «Дата создания»;
  • Реквизиты - «Автор», «Ключевые слова», «И т.п.»;
  • Тело (либо текст, либо таблица);

Подразумеваю три таблицы «Документ», «Реквизиты», «Тело» и связи по id. Не могу решить как организовать хранение данных в «Тело».

Если бы просто текст, то достаточно одно поле в этой таблице использовать, а если таблица (кол-во полей не прогнозируемо), то нужно делать ссылку на таблицу!? Прошу совета и критики!

★★★★★

Храни тело как html. Это плоский текст, который может содержать таблицу.

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

Нет, надо что бы возможно было выборки делать из этого тела. В документе может быть прайс, к примеру.

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

Неверная архитектура базы у вас. Выборки не делают из поля, выборки делают из таблицы. Кроме того, что значит, может быть прайс, может и не быть? Может быть, но не прайс? Уточняйте все варианты использования, потом станет яснее.

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

Неверная архитектура базы у вас

Допускаю, поэтому прошу критики.

Выборки не делают из поля, выборки делают из таблицы

Да поэтому я и сказал что может быть текст, а может быть таблица (надо было уточнить что она MySQL)

Кроме того, что значит, может быть прайс, может и не быть? Может быть, но не прайс? Уточняйте все варианты использования, потом станет яснее.

Представьте Word, Excel что-то навроде этого. Я подумал в теле хранить признак enum(«table»,«text»). Если «text» то можно забрать содержимое поля, если «table», то за ним нужно обратится к таблице.

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

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

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

Вы пост прочтите. Таблица именно MyЫЙД, а не данные в табличной форме аля CSV, <table> и прочее

petav ★★★★★
() автор топика

Когда я был маленьким и работал в «Кодексе», там сделали собственную СУБД под такое дело. И хотя «Кодекс» почти всё делал плохо, эта идея правильная. Не мучай мускул тем, для чего он не предназначен.

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

Вы пост прочтите. Таблица именно MyЫЙД

Прочитал. Поэтому и советую сделать по таблице на каждый символ.

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

подкорректируете задачу, по Вашему, мнению как должно быть!?

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

Ты слишком умный для меня

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

Ограничен виртуальным хостингом

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