saxar, использование конкретной бд нужно было согласовывать заранее. Теперь и не знаю, что вам ставить... Опыта работы с sqlite у меня нет...
Вид для печати
saxar, использование конкретной бд нужно было согласовывать заранее. Теперь и не знаю, что вам ставить... Опыта работы с sqlite у меня нет...
так разницы в sql запросах почти нет. посмотреть что в базе можно при помощи какой-нить проги я думаю.
Mulder,
Хотя до этого был вопрос от acad про использование БД.
Да я и сам спросил) Ответа не дождался, решил что коммент от Webmaster + молчание жюри = согласие :0024:
на самом деле задача 8 без использования бд никакой практической ценности не имеет. все кто решил ее без бд (я в том числа) всего-лишь показали что извращаться можно по разному :) идеальный вариант по моему это в базе хранить оригинальное название, свое название (+ всякие другие данные. например размер, тип и тд) а располагать по принципу year/month/day/image.jpg лучше просто не придумаешь. конечно тут будут дубликаты. от дубликатов по имени (если мы точно знаем что файлы с одинаковым названием будут одинаковы по содержимому) можно избавится посмотрев есть ли такой в файл одним запросом к бд. от дубликатов по содержимому невозможно в любом случае (bill_gates.jpb и bill_gates.png разные и по названию и по содержимому даже если внутри на самом деле одинаковые фотографии). вариант с адекватной проверкой отпадает ибо уж сильно долго мы будем сравнивать даже тысячу фоток. а так как было сказано делать как поняли, то каждый сделал по своему :)
З.Ы. Часть фразы "поняли" уже заслуживает оценки 10 :)
А вдруг каждый день сотни тысяч фотографий?))
я для уж точной равномерности заполнения папок, расположил файлы по id из БД. т.е. например в 1ой папке до 1000 id, во второй с 1000-2000 и тд (разумеется вложености папок тоже сделал ;) например на 1ом уровне миллионы на втором сотни тысяч, на третьем уровне тысячи, а уже в папках тысячах файлы изображений).
я сначала тоже сделал без БД. но потом решил, что ну бред это) либо папок слишком много, либо в папках файлов слишком много. Поэтому решил sqlite использовать, ведь на всех(ну или почти всех) хостингах есть, никуда с ним подключаться не надо(как в mysql), и тем более записать файл бд есть куда (папка images по заданию) :)Цитата:
на самом деле задача 8 без использования бд никакой практической ценности не имеет. все кто решил ее без бд (я в том числа) всего-лишь показали что извращаться можно по разному :)
Я просто не представляю, как так выборочно можно читать сообщения.
Вопрос.
Ответ.
Подтверждающий ответ.
На самом деле нужно читать задание и понимать, что в них просят сделать. Когда просят сделать календарь, вы лезете в дебри просчета дат, когда просят разработать способ хранения файлов, вы лезете в дебри создания полноценного модуля хранения файлов.
В задании не говорилось, разработать полноценный модуль хранения с сохранением служебной информации. Понятное дело, что полноценный модуль без бд не обойдется. Но в задаче просили создать алгоритм для оптимального сохранения файлов в файловой системе. И не более того. Просто алгоритм хранения файлов. Где и как вы будите сохранять служебную информацию, никого не волнует.
Ну тут как бы acad сам с собой поговорил))
А это я вообще не понимать как расшифровать) Я как то русский... Да и не один)
Алгоритм есть. служебная информация пишется в бд sqlite, но она никого не волнует :1135:Цитата:
Просто алгоритм хранения файлов. Где и как вы будите сохранять служебную информацию, никого не волнует.
На самом деле меня как-то смутило вот что:
+Цитата:
в таком виде, что структура файлов не переполняется при большом количестве фотографий
Если б небольшое кол-во, то конечно "просто". А если типа много, то как-то переполнения не легко добиться, ведь либо папок много, либо файлов в папке. Или есть какой-то такой алгоритм без использования бд?Цитата:
Я как заказчик не могу знать, насколько популярным будет мой сервис :)
Вы специально игнорируете третью ссылку? Ваше игнорирование не означает, что ответа не было.
А как вы код пишите? Очень тяжело, наверное, наизусть зазубривать, для чего служат команды SELECT, INSERT, UPDATE и т.д. Или вас в гугле забанили? Да к тому же вторая часть предложения ну никак не отвечает на поставленный вопрос. Весь ответ - в первом и третьем предложениях и они написаны по-русски. Их вы снова проигнорировали. Но это снова не значит, что ответ не был дан.
Ок, я запускаю ваш скрипт, бд sqlite у меня не установлена. Т.к. задача не требовала реализации хранения служебной информации, скрипт должен работать и так. Если не работает, я ставлю 0?
Элементарный алгоритм по балансировке нагрузки. Если заранее известно, что каталог может хранить в себе максимум n элементов, так создайте в нем n подкаталогов, в каждом из которых разместите по n подкаталогов и т.д. до m уровня вложенности и уже на последнем уровне равномерно заполняйте их файлами по n в каждом из каталогов. Трудно посчитать сколько файлов храниться в данный момент в каталоге х? Вот и весь алгоритм.
да и по sha раскидывать вполне нормально. алгоритм распределения фоток будет равномерный в соответствии с алгоритмом получения sha.