Forum Webscript.Ru
Общие => Базы данных => Тема начата: gfdsa от 23 Июля 2002, 06:01:13
-
Друзья, вопрос такой:
Есть следующие папки : пользователи, галереи, комнати в которых картинки. Часто будет нужно узнать путь до картинки. Есть 2 варианта :
1. хранить в таблице с картинками путь до каждой
2. искать каждый раз путь по типу : в какой комнате картинка, к какой галерее относитсуя комната, к какому пользователю относитася галерея.
Что лучше?
-
Если база небольшая, то лучше SELECT, а если уже большая и скрипты тормозят, то добавляй поле.
-
А не легче хранить все картинки в соответствующих каталогах? Или именовать их в соответствии с путем?
-
А не легче хранить все картинки в соответствующих каталогах? Или именовать их в соответствии с путем?
так оно и есть, все картинки в своих каталогах :
есть каталог : users, gallerys, rooms.
три каталога (или больше ) для каждого пользователя.
Но если мне надо знать где лежит определенная картинка то либо :
отбирать по разним ID(комната, галлеры, юзер)
либо сохранять в поле картинки её путь.
Нашот размера бази , что большая , а что маленькая ?
-
Так какая база большая , а какая маленькая? Как определить?
-
Если SELECT работает быстрее 0.01, то смело используй SELECT.
-
Есть еще одна интересная функция, это сделать один запрос сразу к нескольким таблицам, и вытащить все необходимые данные одним запросом групируя их по какому-то параметру
-
gfdsa
если тебе известны все составляющие пути, то никакой проблемы собрать его из них. Не нужно отдельного поля.
Насколько я понимаю, оно просто будет дублировать информацию из других полей.
-
запрос сразу к нескольким таблицам
Простите моё невежество, но можно ли посмотреть на такой пример?
-
дублировать информацию из других полей.
Вот по этому то я и поднял тему. Все пути известни заранее (каждый в своей таблице), но я каждый раз винужден несколько раз использовать select, а база со временем будет большая. Я так понимаю что можно сделать один select, и это должно решить проблемму?
-
gfdsa
А расскажи-ка нам структуру своих таблиц, и мы тебе расскажем, какой запрос делать
-
А расскажи-ка нам структуру своих таблиц, и мы тебе расскажем, какой запрос делать
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
---------------------------------------------------------------------------------
Спасибо
-
Ссори что вмешиваюсь с вопросом не по теме но зачем таблицу называть picture_pictureID
Почему не picture_ID например?
PS
База - postgresql?
-
для mysql:
select galleryName,roomName,pictureName
from user,gallery,room,picture
where galleryOwner=userID
and roomParentID=galleryID
and pictureParentID=roomParentID
-
зачем таблицу называть picture_pictureID
Вроде как принято для читабильности название столбца писать так : имя-таблицы_имя-столбца. Тогда , вроде, легче понимать сложные selects.
-
RomikChef
Спасибо. Теперь , я так понимаю, все будет гораздо проще.