Forum Webscript.Ru

Общие => Базы данных => Тема начата: gfdsa от 23 Июля 2002, 06:01:13

Название: Что лучше? ещё одно поле или select?
Отправлено: gfdsa от 23 Июля 2002, 06:01:13
Друзья, вопрос такой:
Есть следующие папки : пользователи, галереи, комнати в которых картинки. Часто будет нужно узнать путь до картинки. Есть 2 варианта :
1. хранить в таблице с картинками путь до каждой
2. искать каждый раз путь по типу : в какой комнате картинка, к какой галерее относитсуя комната, к какому пользователю относитася галерея.
Что лучше?
Название: Что лучше? ещё одно поле или select?
Отправлено: Alexandr от 23 Июля 2002, 08:49:46
Если база небольшая, то лучше SELECT, а если уже большая и скрипты тормозят, то добавляй поле.
Название: Что лучше? ещё одно поле или select?
Отправлено: Maniac от 23 Июля 2002, 10:48:37
А не легче хранить все картинки в соответствующих каталогах? Или именовать их в соответствии с путем?
Название: Что лучше? ещё одно поле или select?
Отправлено: gfdsa от 23 Июля 2002, 20:41:51
Цитировать
А не легче хранить все картинки в соответствующих каталогах? Или именовать их в соответствии с путем?


так оно и есть, все картинки в своих каталогах :
есть каталог : users, gallerys, rooms.
три каталога (или больше ) для каждого пользователя.

Но если мне надо знать где лежит определенная картинка то либо :
отбирать по разним ID(комната, галлеры, юзер)
либо сохранять в поле картинки её путь.
Нашот размера бази , что большая , а что маленькая ?
Название: Что лучше? ещё одно поле или select?
Отправлено: gfdsa от 25 Июля 2002, 14:51:00
Так какая база большая , а какая маленькая? Как определить?
Название: Что лучше? ещё одно поле или select?
Отправлено: Alexandr от 25 Июля 2002, 14:57:52
Если SELECT работает быстрее 0.01, то смело используй SELECT.
Название: Что лучше? ещё одно поле или select?
Отправлено: advocat от 28 Июля 2002, 13:55:54
Есть еще одна интересная функция, это сделать один запрос сразу к нескольким таблицам, и вытащить все необходимые данные одним запросом групируя их по какому-то параметру
Название: Что лучше? ещё одно поле или select?
Отправлено: Меняздесьдавнонет от 28 Июля 2002, 14:00:58
gfdsa
если тебе известны все составляющие пути, то никакой проблемы собрать его из них. Не нужно отдельного поля.
Насколько я понимаю, оно просто будет дублировать информацию из других полей.
Название: Что лучше? ещё одно поле или select?
Отправлено: gfdsa от 28 Июля 2002, 23:39:32
Цитировать
запрос сразу к нескольким таблицам

Простите моё невежество, но можно ли посмотреть на такой пример?
Название: Что лучше? ещё одно поле или select?
Отправлено: gfdsa от 28 Июля 2002, 23:44:06
Цитировать
дублировать информацию из других полей.

Вот по этому то я и поднял тему. Все пути известни заранее (каждый в своей таблице), но я каждый раз винужден несколько раз использовать select, а база со временем будет большая. Я так понимаю что можно сделать один select, и это должно решить проблемму?
Название: Что лучше? ещё одно поле или select?
Отправлено: Меняздесьдавнонет от 29 Июля 2002, 00:46:19
gfdsa
А расскажи-ка нам структуру своих таблиц, и мы тебе расскажем, какой запрос делать
Название: Что лучше? ещё одно поле или select?
Отправлено: gfdsa от 29 Июля 2002, 02:38:32
Цитировать
А расскажи-ка нам структуру своих таблиц, и мы тебе расскажем, какой запрос делать


user      
user_userName               string   127
user_userPass               string           127
user_userID               serial   
user_userLastName               string   127
user_userFirstName               string   127
user_userDescription          text   127
user_userHomeDir              string    127
-------------------------------------------------------------------------------
gallery      
gallery_galleryName   string   127
gallery_galleryOwner [parent user_userID]
gallery_galleryID                   serial   
gallery_galleryPosition   int   127
gallery_galeryTimeDate   datetime   year to minutes
gallery_galleryDescription   text   127

------------------------------------------------------------------------------
room      
room_roomName                  string   127
room_roomID                  serial   
room_roomParentID[galeryID]
[gallery_galleryID]                  string   127
room_roomPosition                  int   127
room_roomDescription           text   127
room_roomTimeDate             datetime    year to minutes

------------------------------------------------------------------------------
picture      
picture_pictureName   string   127
picture_pictureID                   serial   
picture_pictureParentID [room_roomID]
             
picture_pictureTimeDate   datetime   year to minutes
picture_pictureFileName   string   127
picture_pictureDescription   text   127
picture_picturePosition   int    127
---------------------------------------------------------------------------------
Спасибо
Название: Что лучше? ещё одно поле или select?
Отправлено: Макс от 29 Июля 2002, 03:14:50
Ссори что вмешиваюсь с вопросом не по теме но зачем таблицу называть picture_pictureID
Почему не  picture_ID например?

PS
База - postgresql?
Название: Что лучше? ещё одно поле или select?
Отправлено: Меняздесьдавнонет от 29 Июля 2002, 10:54:49
для mysql:
select galleryName,roomName,pictureName
from user,gallery,room,picture
where galleryOwner=userID
and roomParentID=galleryID
and pictureParentID=roomParentID
Название: Что лучше? ещё одно поле или select?
Отправлено: gfdsa от 29 Июля 2002, 10:58:44
Цитировать
зачем таблицу называть picture_pictureID

Вроде как принято для читабильности название столбца писать так : имя-таблицы_имя-столбца. Тогда , вроде, легче понимать сложные selects.
Название: Что лучше? ещё одно поле или select?
Отправлено: gfdsa от 29 Июля 2002, 11:01:01
Цитировать
RomikChef  

Спасибо. Теперь , я так понимаю, все будет гораздо проще.