Jump to content


Photo
- - - - -

Проектирование БД. MySQL


  • Please log in to reply
3 replies to this topic

#1 PingwiN

PingwiN

    Super True Member

  • True Members
  • PipPipPipPipPip
  • 4,936 posts
62
Хороший
  • Пол:Мужчина

Posted 30 January 2010 - 16:06

Во первых есть пара вопросов - надо ли повторяющиеся значения выводить в отдельные таблицы. В дальнейшем по этим значениям будут делаться выборки.
Например
o_country - возможно всего 6 стран
o_region - зависит страны
о_type - тоже всего 5 возможных вариантов.

Возможно ли в БД оставлять пустое поле? в дальнейшем выводить просто прочерк.
например значения полей o_sq_site и o_sq может быть или не быть в зависимости от o_type.

адекватно ли хранить 1 превью картинку в этой таблице (ок 30Кб jpg)? o_pic
Так же - стоит ли хранить полное описание - с тегами форматирования в этой же таблице? o_dscr_full. 65Кб - я так понимаю это дохренища текста влезет?

Ну и последнее галерея изображений. Хранить в БД? Если нет, то как?
У разных объектов может быть от 3 до 50 изображений. соответственно тамб до 30Кб и полное - около 120-200Кб.
Объектов 2-3 тысячи будет.

Attached Files


  • 0
С теми,кто знает себе цену,легче сойтись в цене

#2 лайт

лайт

    iddqd

  • True Members
  • PipPipPipPipPip
  • 3,843 posts
9
Обычный
  • Пол:Мужчина

Posted 30 January 2010 - 17:48

Во первых есть пара вопросов - надо ли повторяющиеся значения выводить в отдельные таблицы. В дальнейшем по этим значениям будут делаться выборки.
Например
o_country - возможно всего 6 стран
o_region - зависит страны
о_type - тоже всего 5 возможных вариантов.

Возможно ли в БД оставлять пустое поле? в дальнейшем выводить просто прочерк.
например значения полей o_sq_site и o_sq может быть или не быть в зависимости от o_type.

адекватно ли хранить 1 превью картинку в этой таблице (ок 30Кб jpg)? o_pic
Так же - стоит ли хранить полное описание - с тегами форматирования в этой же таблице? o_dscr_full. 65Кб - я так понимаю это дохренища текста влезет?

Ну и последнее галерея изображений. Хранить в БД? Если нет, то как?
У разных объектов может быть от 3 до 50 изображений. соответственно тамб до 30Кб и полное - около 120-200Кб.
Объектов 2-3 тысячи будет.

Про повторяющиеся я *цензура* не понял.
Поле пустое можно оставлять, либо присвоить ему значение по-умолчанию NULL.
Ни cms, ни различные серверные приложения которые я использовал не применяли хранение бинарных данных в базе. Тебе больше гугл по этому поводу скажет.
В текст влезает 65535байт, смотри сам сколько тебе нужно. Про фильтрацию форматированного текста только не забывай, а то хекнут.
Да и вообще я бы не советовал хранить большие объёмы бинарных данных в mysql, тут уже в сторону postgresql смотреть нужно.
  • 0

#3 Malder

Malder

    Super True Member

  • True Members
  • PipPipPipPipPip
  • 1,330 posts
0
Обычный
  • Пол:Мужчина

Posted 04 February 2010 - 09:54

стоит действительно смотреть в сторону postgreSQL если записей будет 2-3 тысячи. Картинки хранить в БД нехорошо. Храни там путь до картинки.

Возможно ли в БД оставлять пустое поле? в дальнейшем выводить просто прочерк.

Да. Если поле пустое, то при выборке можно заменить его на "----"

Так же - стоит ли хранить полное описание - с тегами форматирования в этой же таблице? o_dscr_full. 65Кб - я так понимаю это дохренища текста влезет?

Если текст не привышает 65кб то храни в БД. Если больше, то сохраняй текст в txt, а в бд храни путь до файла.
  • 0

#4 krutuzick

krutuzick

    Super True Member

  • True Members
  • PipPipPipPipPip
  • 220 posts
3
Обычный

Posted 04 February 2010 - 21:34

По части повторяющихся значений и прочего стаффа при проектировании бд:
Нормализация баз данных
Первые 3 (возможно + Бойса-Кодда) настоятельно рекомендованы к применению.
В чём плюсы: уменьшается риск получить Аномалии
В чём минусы: более сложные запросы, бОльшее количество таблиц в базе.
  • 0


1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users