Здравейте!
Работя върху сайт за обяви, който трябва да се базира само върху файлове. Темата може да ви се строи идиотска, но все пак бихте ли ми дали някакви насоки как да изградя структурата на сайта?
Страницата ще включва няколко раздела (стандартните типове обяви) и ще е адресирана към регион, в който едва ли ще има голяма натовареност (брой посещения/брой обяви). Вече си взех платен хост, но ми се иска да направя страницата по-скоро, а през следващите няколко седмици едва ли ще имам достатъчно време да навлизам в работата с БД, докато с файлове се оправям нелошо, освен това проектът е некомерсиален (още преди години опапах нещата с местните политико-икономически феодали, така че едва ли ще намеря рекламодатели) и не ми се иска да хабя хоста за него...
Онова, което ми е твърде мъгляво е как да структурирам отделните раздели и съответно съхраняването и извеждането на информацията. Иска ми се и да въведа някаква елементарна система за търсене в низовете и май голямата мъчнотия идва от тук.
Досега съм използвал всякакви варианти за съхраняване на информация във файловете: всеки запис на отделен файл просто като низ; в отделен файл, но като променливи, които се визуализират чрез включване на файла, "класическия способ": всеки запис на отделен ред + разделител, четене по редове и отделяне чрез експлоуд...
Засега мисля всеки раздел да бъде в отделна директория, всяка обява с индивидуален, пореден номер + дата, но дали в отделен файл или по друг начин, не зная...
Тъй като всяка обява ще съдържа няколко сигурни елемента: номер, заглавие и съдържание мисля, че бих могъл да използвам "класическия способ" за съхраняването на обявите от всеки раздел. Проблемът е, че не мога да тъпча файловете до дупка. Имам ограничение от 500кб, така че ще се наложи да използвам повече от един файл... Въпросът е, как да определя кога да преминава към запис в следващ файл, за да не реже обявите посредата) и съответно как да организирам търсене в няколко файла последователно при една заявка...
За да реша този проблем ми хрумват два варианта: единият - във файла, който ще е като БД да се записват номера, датата и заглавието на обявата, а съдържанието на всяка в отделен файл. При листване на списъка с обявите ще се използва файла БД (от него ще се вземат номера датата и заглавието), а подробностите за обявата (при поискване) от файла, в който се съдържа...
Вторият вариант е да записвам в отделен файл обявите, подадени за един ден (едва ли ще има повече от 5-6 обяви на ден за даден раздел, така че да се вместя в лимита), а после да листвам редовете един след друг, четейки файл след файл... Така и управлението ще бъде по-лесно - просто ще трия файловете по-стари от 30 дни напр (т.е. щом станата повече от 30 на брой в директорията), за да освобождавам място, а и по-лесно ще листвам информацията по дати...
Вярвам, че с по-горните въпроси ще се справя някакси (което не означава, че се отказвам от още идеи), но ме притеснява търсенето. Нямам никакъв опит. Помня, че имаше някаква тема тук, така че ще я прегледам отново, но как да го организирам така че да е ефективно и да не затруднява общата организация и съхранение на информацията. И тъй като модела на търсене вероятно ще определи структурата на сайта, разчитам на помощ от вас преди да тръгна да правя големите глупости...
Не зная доколко ясно описах идеята и проблема, затова ще се съсредоточа върху очакванията си за листването и за търсенето:
+ листване на всички налични обяви (със страницирането мисля, че ще се справя)
+ листване на всички налични от даден раздел
+ листване по дата от-до от даден раздел/ от всички налични
+ листване на последните 10 от всички раздели
+ листване на последните 10 от даден раздел
Търсенето да е по ключова дума и вариантите са:
+ търсене по заглавие във всички обяви (с възможност по дата от-до или за съответния ден)
+ търсене по заглавие в даден раздел (---/---)
+ търсене по съдържание във всички налични (---/---)
+ търсене по съдържание в даден раздел (---/---)
Това ми е програмата максимум, така че съм склонен и на компромис. Ако сте разбрали нещо от написаното по-горе, моля кажете какви идеи ви хрумват.
Благодаря предварително!
Работя върху сайт за обяви, който трябва да се базира само върху файлове. Темата може да ви се строи идиотска, но все пак бихте ли ми дали някакви насоки как да изградя структурата на сайта?
Страницата ще включва няколко раздела (стандартните типове обяви) и ще е адресирана към регион, в който едва ли ще има голяма натовареност (брой посещения/брой обяви). Вече си взех платен хост, но ми се иска да направя страницата по-скоро, а през следващите няколко седмици едва ли ще имам достатъчно време да навлизам в работата с БД, докато с файлове се оправям нелошо, освен това проектът е некомерсиален (още преди години опапах нещата с местните политико-икономически феодали, така че едва ли ще намеря рекламодатели) и не ми се иска да хабя хоста за него...
Онова, което ми е твърде мъгляво е как да структурирам отделните раздели и съответно съхраняването и извеждането на информацията. Иска ми се и да въведа някаква елементарна система за търсене в низовете и май голямата мъчнотия идва от тук.
Досега съм използвал всякакви варианти за съхраняване на информация във файловете: всеки запис на отделен файл просто като низ; в отделен файл, но като променливи, които се визуализират чрез включване на файла, "класическия способ": всеки запис на отделен ред + разделител, четене по редове и отделяне чрез експлоуд...
Засега мисля всеки раздел да бъде в отделна директория, всяка обява с индивидуален, пореден номер + дата, но дали в отделен файл или по друг начин, не зная...
Тъй като всяка обява ще съдържа няколко сигурни елемента: номер, заглавие и съдържание мисля, че бих могъл да използвам "класическия способ" за съхраняването на обявите от всеки раздел. Проблемът е, че не мога да тъпча файловете до дупка. Имам ограничение от 500кб, така че ще се наложи да използвам повече от един файл... Въпросът е, как да определя кога да преминава към запис в следващ файл, за да не реже обявите посредата) и съответно как да организирам търсене в няколко файла последователно при една заявка...
За да реша този проблем ми хрумват два варианта: единият - във файла, който ще е като БД да се записват номера, датата и заглавието на обявата, а съдържанието на всяка в отделен файл. При листване на списъка с обявите ще се използва файла БД (от него ще се вземат номера датата и заглавието), а подробностите за обявата (при поискване) от файла, в който се съдържа...
Вторият вариант е да записвам в отделен файл обявите, подадени за един ден (едва ли ще има повече от 5-6 обяви на ден за даден раздел, така че да се вместя в лимита), а после да листвам редовете един след друг, четейки файл след файл... Така и управлението ще бъде по-лесно - просто ще трия файловете по-стари от 30 дни напр (т.е. щом станата повече от 30 на брой в директорията), за да освобождавам място, а и по-лесно ще листвам информацията по дати...
Вярвам, че с по-горните въпроси ще се справя някакси (което не означава, че се отказвам от още идеи), но ме притеснява търсенето. Нямам никакъв опит. Помня, че имаше някаква тема тук, така че ще я прегледам отново, но как да го организирам така че да е ефективно и да не затруднява общата организация и съхранение на информацията. И тъй като модела на търсене вероятно ще определи структурата на сайта, разчитам на помощ от вас преди да тръгна да правя големите глупости...
Не зная доколко ясно описах идеята и проблема, затова ще се съсредоточа върху очакванията си за листването и за търсенето:
+ листване на всички налични обяви (със страницирането мисля, че ще се справя)
+ листване на всички налични от даден раздел
+ листване по дата от-до от даден раздел/ от всички налични
+ листване на последните 10 от всички раздели
+ листване на последните 10 от даден раздел
Търсенето да е по ключова дума и вариантите са:
+ търсене по заглавие във всички обяви (с възможност по дата от-до или за съответния ден)
+ търсене по заглавие в даден раздел (---/---)
+ търсене по съдържание във всички налични (---/---)
+ търсене по съдържание в даден раздел (---/---)
Това ми е програмата максимум, така че съм склонен и на компромис. Ако сте разбрали нещо от написаното по-горе, моля кажете какви идеи ви хрумват.
Благодаря предварително!