Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: вопрос о хранении данных (файлы или БД)
 
 автор: sergi   (21.08.2008 в 01:34)   письмо автору
 
 

Всем привет

Есть задача для on-line магазина

все знакомы с on-line магазинами.
представим есть список товаров и при нажатии на товар,
можно посмотреть подробности о товаре описание и.т.п..

так вот задача в том чтобы описание каждого товара могло содержать
НЕ ОДНУ а несколько фоток.

Сначала думал запихать ссылки на фото в БД ,что - то вроде
| товар | ссылка |
но потом подумал что не очень. ведь если фоток много и ссылок будет много
и как это все хранить в базе? Потом думал вообще обойтись без базы и просто
прочесывать папки и выбирать фото прямо из папок.
Но кто-то кричит мол не оптимально все будет медленно и т.д..
Господа эксперты подскажите что-нибидь пожалуйста

  Ответить  
 
 автор: BinLaden   (21.08.2008 в 02:11)   письмо автору
 
   для: sergi   (21.08.2008 в 01:34)
 

Вы сначала выбрали правильный вариант: идентификатор товара и путь к картинке - лучше всего. Можно еще идентификатор для фоток самих добавить - так честнее.
Проставьте индексы - и все будет летать.

  Ответить  
 
 автор: Sergi   (21.08.2008 в 02:21)   письмо автору
 
   для: BinLaden   (21.08.2008 в 02:11)
 

Если я правильно понял, то вы предлагаете
хранить в БД по схеме

товар1 / ссылка но фото
товар1 / ссылка на второе фото
товар2 / .....

т.е. отдельная таблица чисто для связи id товара c ссылкой на фото товара

А так ли это что выборка из файлов происходит медленнее?

  Ответить  
 
 автор: BinLaden   (21.08.2008 в 02:28)   письмо автору
 
   для: Sergi   (21.08.2008 в 02:21)
 

Зависит от количества файлов и способа выборки. Больше ничего и не скажешь...

  Ответить  
 
 автор: Valick   (21.08.2008 в 11:58)   письмо автору
 
   для: Sergi   (21.08.2008 в 02:21)
 

Надо быть гениальным программистом и великим энтузиастом, чтоб писать магазин на файлах. Я вот сел писать простенький тест на файлах... и приплыл... хочу сделать одну вещь, а неполучается.
Используйте БД.
Если файл читается целиком, то файлы быстрее, а если нужно что-то отсортировать, то БД быстрее (и проще!!!)

  Ответить  
 
 автор: mihdan   (21.08.2008 в 12:08)   письмо автору
 
   для: Valick   (21.08.2008 в 11:58)
 

>Если файл читается целиком, то файлы быстрее
вкорне не согласен-зависити от размера файла и способа его чтения(целиком или по строкам)

  Ответить  
 
 автор: mihdan   (21.08.2008 в 12:11)   письмо автору
 
   для: sergi   (21.08.2008 в 01:34)
 

images

-----------------------------
| id_thing | path_to_image |
-----------------------------


И как сказал BinLaden поставьте индексы

  Ответить  
 
 автор: BinLaden   (21.08.2008 в 12:32)   письмо автору
 
   для: mihdan   (21.08.2008 в 12:11)
 

> mihdan (21.08.2008 в 12:11)
> id_tovara | path_to_image

А не лучше product_id и put_k_izobrazheniu?

  Ответить  
 
 автор: dmtrfoxerr   (25.08.2008 в 10:40)   письмо автору
 
   для: BinLaden   (21.08.2008 в 12:32)
 

А подскажите уважаемые.... зачем индексы к путям на картинки???
неужели быстрее работает?

  Ответить  
 
 автор: erteni   (25.08.2008 в 11:14)   письмо автору
 
   для: dmtrfoxerr   (25.08.2008 в 10:40)
 

да, это любопытно, ведь эти поля не участвуют в where, order by и т.д.

  Ответить  
 
 автор: BinLaden   (25.08.2008 в 11:30)   письмо автору
 
   для: dmtrfoxerr   (25.08.2008 в 10:40)
 

На путь и не нужен индекс. Только на идентификатор товара.

  Ответить  
 
 автор: dmtrfoxerr   (25.08.2008 в 18:18)   письмо автору
 
   для: BinLaden   (25.08.2008 в 11:30)
 

Т.Е. Как я вас понял:
id_foto
url_foto
id_tovar (вот на это поле поставить индекс?)
Правельно???
насколько интересно будет прирост производительности???
Просто я стою перед тойже делемой и хотелось бы по подробнее .... ))

  Ответить  
 
 автор: coba   (25.08.2008 в 18:28)   письмо автору
 
   для: dmtrfoxerr   (25.08.2008 в 18:18)
 

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

  Ответить  
 
 автор: BinLaden   (25.08.2008 в 19:24)   письмо автору
 
   для: dmtrfoxerr   (25.08.2008 в 18:18)
 

Правильно заостряете внимание, не слушайте всяких...:)

photo_id (или в Вашем варианте id_foto) должен быть PRIMARY_KEY с auto_increment, photo_url (или в Вашем варианте url_foto) - URL к фото, хотя лучше имя файла хранить, т.к. URL - это абсолютный URI, т.е. "http://...". А адрес Вашего сайта или названия папок могут меняться и будет неудобно. Ну и для product_id (или в Вашем варианте id_tovar) нужен просто INDEX.

Ощутимо будет, когда в базе данных будет несколько десятков тысяч записей и больше.

  Ответить  
 
 автор: coba   (25.08.2008 в 19:27)   письмо автору
 
   для: BinLaden   (25.08.2008 в 19:24)
 

Товарищ не знаком с основами SQL, ничего не знает о нормальных формах и т.п., а вы ему пытаетесь на пальцах что-то показать. Так и работать все будет. И потом купите чего-нить в таком магазине и столкнетесь со всеми прелестями))))

  Ответить  
 
 автор: BinLaden   (25.08.2008 в 19:30)   письмо автору
 
   для: coba   (25.08.2008 в 19:27)
 

Вы так хорошо знаете пользователя dmtrfoxerr? Я вообще первый раз его вижу.

  Ответить  
 
 автор: coba   (25.08.2008 в 19:35)   письмо автору
 
   для: BinLaden   (25.08.2008 в 19:30)
 

Нет я не знаю его настолько хорошо, но более-менее могу представить его уровень по его вопросам и синтаксису.

  Ответить  
 
 автор: BinLaden   (25.08.2008 в 19:49)   письмо автору
 
   для: coba   (25.08.2008 в 19:35)
 

И вопросов по синтаксису не видел. У Вас глаза на заднице, что Вы видите то, что не видят другие?

  Ответить  
 
 автор: coba   (25.08.2008 в 19:59)   письмо автору
 
   для: BinLaden   (25.08.2008 в 19:49)
 

Зачем же сразу оскорблять, я говорю о синтаксисе русского языка а не php.

  Ответить  
 
 автор: dmtrfoxerr   (25.08.2008 в 20:53)   письмо автору
 
   для: coba   (25.08.2008 в 19:27)
 

TO >> coba
Спасибо Вам, за столь пристальное внимание к моей персоне.
По-моему нет ничего зазорного узнавать что-то новое и соответственно задавать вопросы ... пускай даже они глупые.
Если Вам так интересно... Универ закончил 6 лет назад по специальности Прикладное программирование,но к сожалению, не пришлось работать по спецальности ...
так что щас вспоминаю многое... раз припекло
Это по вопросу о моем уровне...

А про синтаксис русского языка ...в школе стояла твердая тройка. ))) ))

Лан что то я растрогался... столько внимания!!!

  Ответить  
 
 автор: dmtrfoxerr   (25.08.2008 в 20:39)   письмо автору
 
   для: BinLaden   (25.08.2008 в 19:24)
 

)))) Это все понятно ))) я может не корректно задал вопрос... имел ввиду что не когда не слышал чтоб индексировали id_tovar(в данном случае).... )))
Потому и озодачился ))0 спасибо за подробное объяснения.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования