Подскажетие, Структуру и логику "Новости" на сайт?

4m@t!c

Александр
Подскажетие, Структуру и логику "Новости" на сайт?

Подскажите, пожалуйста, как лучше реализоват структуру новостей для сайта.
На index будут лежать цитаты новостей. Каждай кнопка имеет линк "Подробней", по которому новость будет отображены посетителю в полном объеме.
Каждая новость на index'е имеет картинку.
На index'е должно быть 5 последних новостей и линка на архив новостей.
Сходу структура такая
Код:
CREATE TABLE `news` (
  `newsid` int(10) unsigned NOT NULL auto_increment,
//Дата новости
  `newsdate` date NOT NULL default '0000-00-00',
//Текст нвоости
  `newstext` longtext NOT NULL,
//картинка для новости
  `newsimage` longblob NOT NULL,
  PRIMARY KEY  (`newsid`)
)
Вопросы.
1. Не слишком ли большие значения типов данных?(страницы и картинки самые обычные)?
2. Как создавать страницы по урле "подробней"?
а) Сделать поле, в котором хранить код страницы новости? В каком виде ее создавать и как генерить, если в новости будет несколько картинок?
б) Сделать статические страницы, сделать поле в БД с урлой статической страницы???
 

Стас

Троечник
Я делал так: Новость хранил в двух полях. Одно(intro)- вступление, второе(newstext)- то, что будет после "Читать дальше". Тогда экономится память для запроса "SELECT newsid,newsdate, intro, newsimage FROM news order by 1".
Правда, картиники в базе я никогда не хранил. Там лежали адреса файлов.
Новость можно вывести так: echo $news[2]."<a href=news.php?id=".$news[0].">More..."; и в news.php выводить все полностью.
 

4m@t!c

Александр
угумс, я уже тоже опнял, что должно быть два поля по тексту нвостей. вступление и сама новсть - уже пофиксил, спасибо.. А как насчет всего остального?
Плюс, если делать картинки файлами, то много мусора будет в директории.. захочу я почистить старые новости. и мне придется вспоминать, какие картинки к какой новости отностятся?
 

Cougar

Кошак
А кто мешает хранить информацию о картинках также в БД?
 

walker_ag

Новичок
Автор оригинала: 4m@t!c
угумс, я уже тоже опнял, что должно быть два поля по тексту нвостей. вступление и сама новсть - уже пофиксил, спасибо.. А как насчет всего остального?
Плюс, если делать картинки файлами, то много мусора будет в директории.. захочу я почистить старые новости. и мне придется вспоминать, какие картинки к какой новости отностятся?
1. Чтобы очищать эту дерикторию можешь написать небольшой скрипт, который буде
a) делать запрос к директории с картинками (записывать список файлов в архив)
b) Делать запрос к базе данных (получить список картинок, которые используются) и сравнить его с архивом (a).
с) Удалить неиспользуемые картинки

2. По поводу longtext - если объемы базы не большие - то все равно. Но лучше посмотреть спецификацию mysql variables и понять, что все таки скорее всего у тебя будут не такие объемные новости и легко будут помещаться в text.
 

4m@t!c

Александр
Автор оригинала: Cougar
А кто мешает хранить информацию о картинках также в БД?
Тогда придется создавать еще одну таблицу, которая будет хранить ID новости и имена фалов, которые с этой новостью связаны.
А возможно запистаь html-код всей новости (с картинками) в таблицу в ячейку с типом поля BLOB, а потом его считать?
Но опять возникает вопрос, как внедрить в код картинку???

я просто не знаю, как корректней создать, не хотелось бы впоследствие переделывать.

-~{}~ 11.10.04 16:07:

Большое спасибо всем.
Тогда:
1. Отдельную директорюи ./IMAGE/NEWS/
2. делаю еще одну таблицу с именами файлов и ID новости, которая соответсвует картинкам.
3. Делаю метод, которым удаляя новость, удалял бы и файлы-картинки, принадлежащие этой новости.
Прошу, пожалуйста, пофиксить, если где-то не прав...
 

Alexandre

PHPПенсионер
4m@t!c
если хранить картинки в базе, то:
1) лишняя нагрузка на БД в качестве картинок
Блобы все-таки - занимают много ресурсов и по времени это
может тормозить.

2) для отображении картинки надо писать скрипт:
<img src="imege.php?id=xXx" >

3) усложнится процесс загрузки.

я все новостные картинки держал в специальной директории.
удаляются файлы простым скриптом, который сверяет имена картики в БД и имена файлов.

2й способ: запускать скрипт по крону -
удалять все файлы, которые были созданы более месяца (три месяца ) назад...
Новость - больше месяца не хранится иначе это не новость!
 

kolemming

Новичок
Еще вариант...

У меня есть отдельная таблица(две, там еще категории есть, но для простоты возьмем одну), в которой id,filename(можно добавить название и описание для наглядности). А вот в той табличке где нужно еще и ссылку на картнику, хранится id картинки, а потом вытаскивается. Ну а если к какому то конекретному контенту нужно несколько картинок, кол-во и расположение которых зараннее не известно, то я это вообще реализовал с помощью псевдо-тэгов, которые в частности используются на форумах. Но сами картинки все равно хранятся в таблицке и над ними доступны все манипуляции, удаление и прочее.(удаляя и с диска удаляется, никакого бардака не происходит). Плюс полезно при загрузке, давать им уникальные имена, поэтому я сначала создаю запись в БД, потом вытаскиваю последний id оттуда и делаю из него префикс к имени файла, что бы имена не пересекались...
 
Сверху