Модераторы: Aliance, skyboy, MoLeX, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> API для добавления статей 
:(
    Опции темы
Aliance
Дата 9.7.2005, 13:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: нет
Всего: 137



Вы меня запутали. Опик, объясни что должно хранится в этой таблице.
PM MAIL WWW ICQ Skype   Вверх
Opik
Дата 9.7.2005, 17:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Vingrad developer
Сообщений: 1918
Регистрация: 6.10.2004
Где: Рига

Репутация: нет
Всего: 55



Mal Hack
в самой mysql у пользователей Y и N
PM MAIL Skype   Вверх
Гость_Viktor
Дата 16.7.2005, 14:35 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Пока вы далеко не зашли!

Есле вы используете базу!
Тогда лучше есле статья будет в виде файла а ссылка храниться в базе на нее.
Тогда мы облегчим вес базы.
Как такой вариант?



Я уже работаю в полуручном варианте.
Админ еще не готов.

Проблемы были с защищеным режимом сервера.
Пришлось темы и разделы создавать в базе и генерить ссылку на файл.
Каталог с файлами придется защищать.

Мое мнение.
Пока




  Вверх
Aliance
Дата 16.7.2005, 23:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: нет
Всего: 137



Спасибо, интересно.
А далеко мы не зашли потому что никто не пишет...по теме по крайней мере smile
PM MAIL WWW ICQ Skype   Вверх
Aliance
Дата 16.5.2006, 22:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: нет
Всего: 137



Хы ) после написания регистрации пришло время вернутся к написанию данного скрипта - статей.

Опик, хочу извенится за все свои посты - прочитал их сейчас и ужаснулся. Понял как многово я тогда не знал и откровенно тупил smile

Итак, регистрация у меня теперь есть. Она у меня с форума IPB.

Новый план: таблицы статей, таблица комментариев, таблица групп, таблица категорий. 
PM MAIL WWW ICQ Skype   Вверх
Opik
Дата 17.5.2006, 20:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Vingrad developer
Сообщений: 1918
Регистрация: 6.10.2004
Где: Рига

Репутация: нет
Всего: 55



Aliance
я сейчас тоже почитал - улыбнуло smile, причем мои же больше всего.
Цитата

Новый план: таблицы статей, таблица комментариев, таблица групп, таблица категорий. 


скидывай дамп smile посмотрим структуру smile))))) 
PM MAIL Skype   Вверх
Aliance
Дата 17.5.2006, 21:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: нет
Всего: 137



Код

CREATE TABLE `articals` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`nick` VARCHAR( 25 ) NOT NULL ,
`date` DATETIME NOT NULL ,
`editor_nick` VARCHAR( 25 ) NULL ,
`editor_date` DATETIME NULL ,
`password` VARCHAR( 25 ) NOT NULL ,
`content` VARCHAR( 255 ) NOT NULL ,
`visible` ENUM( 'Y', 'N' ) NOT NULL ,
`section` VARCHAR( 15 ) NOT NULL 
) TYPE = MYISAM ;

CREATE TABLE `articals_comments` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`author_nick` VARCHAR( 25 ) NOT NULL ,
`author_date` DATETIME NOT NULL ,
`content` VARCHAR( 255 ) NOT NULL ,
`editor_nick` VARCHAR( 25 ) NULL ,
`editor_date` DATETIME NULL ,
`ip` VARCHAR( 15 ) NOT NULL ,
`visible` ENUM( 'Y', 'N' ) NOT NULL 
) TYPE = MYISAM ;

CREATE TABLE `sections` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`title` VARCHAR( 40 ) NOT NULL ,
`module` VARCHAR( 20 ) NOT NULL 
) TYPE = MYISAM ;


Пример 1 еще неодобренной статьи с 1 комментарием:
Код

INSERT INTO `articals` ( `id` , `nick` , `date` , `editor_nick` , `editor_date` , `section` , `password` , `visible` , `content` ) 
VALUES (
NULL , 'Aliance', '2006-05-17 22:20:00', NULL, NULL, 'creative', SHA1( '123' ) , 'N', 'Это первая статья!'
);

INSERT INTO `articals_comments` ( `id` , `author_nick` , `author_date` , `editor_nick` , `editor_date` , `ip` , `visible` ) 
VALUES (
NULL , 'Aliance', '2006-05-17 22:30:00', 'А это комментарий ;)', NULL , NULL , '195.131.169.234', 'N'
);

INSERT INTO `sections` ( `id` , `title` , `module` ) 
VALUES (
NULL , 'Творчество', 'creative'
);


Вот. Логин и группа будет братся из другой БД, она уже готова (БД форума IPB)
Пока возникают такие вопросы:
• что-то сделано не так?
• поля content заданы как varchar(255) - хватит ли этого? Если статья может быть на страницу. Может лучше BIGBLOB использовать?
• если вся статья скрыта, то на "скрытость" комментов должно быть все равно. Реально ли?
• не понимаю особого назначения 3 таблицы    

Это сообщение отредактировал(а) Aliance - 17.5.2006, 21:40
PM MAIL WWW ICQ Skype   Вверх
-=Ustas=-
Дата 18.5.2006, 10:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ustix IT Group
****


Профиль
Группа: Участник Клуба
Сообщений: 2222
Регистрация: 21.1.2005
Где: Краснодар

Репутация: нет
Всего: 69



Aliance, ну во-первых, я бы вынес авторов в отдельную таблицу и связывал бы по id-ишникам, т.к. это у тебя сечас избыточная информация, затем, мне не понятно для чего это поле
Код

`section` VARCHAR( 15 ) NOT NULL 

имеет текстовый тип. Я так понимаю, оно должно иметь связь по id-ишнику с третьей таблице section.
Код

`password` VARCHAR( 25 ) NOT NULL 

в таблице `articals` тоже не уместно.
Поля дат, я бы перевел в тип INT(10) и загонял бы туда дату в формате unix-timestamp.
Таблица `articals_comments` - я вообще не вижу как она связана с основной таблицей статей, должно быть поле articleID, которое будет содержать ссылку на своего родителя, т.е. на статью.
Поля content я бы сделал тип TEXT. 


--------------------
В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм.
-----
PM WWW ICQ Skype   Вверх
-=Ustas=-
Дата 18.5.2006, 10:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ustix IT Group
****


Профиль
Группа: Участник Клуба
Сообщений: 2222
Регистрация: 21.1.2005
Где: Краснодар

Репутация: нет
Всего: 69



Я бы сделал так:
Код

CREATE TABLE `articles` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
`authorID` INT(10) NOT NULL,
`date` INT(10) NOT NULL,
`editorID` INT(10) DEFAULT NULL,
`modify` INT(10) DEFAULT '',
`content` TEXT NOT NULL DEFAULT '',
`visible` ENUM('Y', 'N') NOT NULL DEFAULT 'Y',
`sectionID` MEDIUMINT(8) NOT NULL DEFAULT '',
KEY `authorID` (`authorID`),
KEY `editorID` (`editorID`),
KEY `sectionID` (`sectionID`),
FULLTEXT KEY `content` (`content`)
) TYPE = MYISAM ;

CREATE TABLE `articles_comments` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`articleID` INT(10) NOT NULL,
`authorID` INT(10) NOT NULL,
`date` INT(10) NOT NULL,
`editorID` INT(10) DEFAULT NULL,
`modify` INT(10) DEFAULT '',
`content` VARCHAR( 255 ) NOT NULL ,
`ip` VARCHAR( 15 ) NOT NULL ,
`visible` ENUM('Y', 'N') NOT NULL DEFAULT 'Y',
KEY `articleID` (`articleID`),
KEY `authorID` (`authorID`),
KEY `editorID` (`editorID`)
) TYPE = MYISAM ;

CREATE TABLE `sections` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`title` VARCHAR(40) NOT NULL ,
`module` VARCHAR(20) NOT NULL 
) TYPE = MYISAM ;
 


--------------------
В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм.
-----
PM WWW ICQ Skype   Вверх
Opik
Дата 18.5.2006, 17:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Vingrad developer
Сообщений: 1918
Регистрация: 6.10.2004
Где: Рига

Репутация: нет
Всего: 55



А я бы сделал как -=Ustas=-, но в том отличии, что поле content с типом TEXT вынес бы в отдельную таблицу и связал по ID
 
PM MAIL Skype   Вверх
-=Ustas=-
Дата 18.5.2006, 17:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ustix IT Group
****


Профиль
Группа: Участник Клуба
Сообщений: 2222
Регистрация: 21.1.2005
Где: Краснодар

Репутация: нет
Всего: 69



Цитата(Opik @  18.5.2006,  17:36 Найти цитируемый пост)
что поле content с типом TEXT вынес бы в отдельную таблицу и связал по ID

Так будет оптимальней? 


--------------------
В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм.
-----
PM WWW ICQ Skype   Вверх
Opik
Дата 18.5.2006, 17:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Vingrad developer
Сообщений: 1918
Регистрация: 6.10.2004
Где: Рига

Репутация: нет
Всего: 55



-=Ustas=-
Да, т.к для поля BLOB, TEXT не поддерживаются таблицами HEAP, грубо говоря выборка из таблиц, содержащих TEXT, BLOB идет при помощи файлов.

Добавлено @ 17:56 
А не в памяти, как у остальных, но тут много нюансов по сути есть. 
PM MAIL Skype   Вверх
Aliance
Дата 18.5.2006, 21:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: нет
Всего: 137



Ээ, а если так оставить? Мне так понятнее, во-первых. Во-вторых, зачем мне авторов в отдельную таблицу выносить-то? 
PM MAIL WWW ICQ Skype   Вверх
-=Ustas=-
Дата 18.5.2006, 22:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ustix IT Group
****


Профиль
Группа: Участник Клуба
Сообщений: 2222
Регистрация: 21.1.2005
Где: Краснодар

Репутация: нет
Всего: 69



Цитата(Aliance @  18.5.2006,  21:24 Найти цитируемый пост)
Ээ, а если так оставить?

Можно smile , если ты над собой издеваться любишь

Цитата(Aliance @  18.5.2006,  21:24 Найти цитируемый пост)
Мне так понятнее, во-первых.

Вот именно, это только ВО-ПЕРВЫХ, а далее ты будешь смотреть на эту структуру и сам с себя улыбаться.

Цитата(Aliance @  18.5.2006,  21:24 Найти цитируемый пост)
Во-вторых, зачем мне авторов в отдельную таблицу выносить-то?

В твоем подходе, это называется избыточной информацией. Смотри, создал ты 50 статей, в итоге у тебя получается 50 строк с 50-ью никами Aliance. А вдруг ты захотел поменять свой ник - тут тебе придется править его в 50-строках, вместо того, чтоб исправить в одном месте.
Это не рационально, использовать подобную структуру. 


--------------------
В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм.
-----
PM WWW ICQ Skype   Вверх
Opik
Дата 19.5.2006, 08:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Vingrad developer
Сообщений: 1918
Регистрация: 6.10.2004
Где: Рига

Репутация: нет
Всего: 55



Aliance
Есть понятнее, а есть правильнее и логичее, что потом, в итоге, станет понятнее первого.

Что лучше выбрать? smile 
PM MAIL Skype   Вверх
Страницы: (6) Все « Первая ... 2 3 [4] 5 6 
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Избранное | Следующая тема »


 




[ Время генерации скрипта: 0.1444 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.