I wanted to create ajax based commenting system for some html pages. Eu queria criar ajax baseados sistema para comentar algumas páginas HTML. The design goals were: A concepção objetivos eram:
1. Simple to use and install Simples de usar e instalar
2. Database (MySQL) backed Banco de dados (MySQL) apoiou
3. Minimal changes to HTML template / files Alterações mínimas ao modelo HTML / arquivos
4. Support effective (no frequent cache refreshes) html page compression / caching strategy for heavily commented sites. O apoio efectivo (não atualiza frequentes cache) html página compressão / caching estratégia para fortemente comentados sites.

An AJAX based system fits the bill. Um sistema baseado AJAX se enquadra o projecto de lei. The new comments are displayed instantaneously. As novas observações são exibidas instantaneamente. The html pages can be cached and / or compressed without requiring to refresh after each comment. As páginas HTML podem ser em cache e / ou comprimido sem que seja necessária a atualização após cada observação.
Spam is an issue with any commenting system. Spam é uma questão a comentar qualquer sistema. I have decided to strip html tags in the first iteration to deter spammers. Tenho decidida a tira tags html na primeira iteração para dissuadir os spammers. As a personal decision I have decided not to capture email address. Tal como uma decisão pessoal eu decidi não para capturar e-mail. However it can be trivially added along with url if so desired. No entanto, pode ser adicionado trivialmente juntamente com url se assim o desejar.

I used Sajax as my Ajax framework. Eu usei as minhas Sajax Ajax quadro. It presented Apresentou few pouco problems as Sajax is more suited for PHP / Ruby pages and not HTML. problemas como Sajax é mais adequada para PHP / Ruby, e não páginas HTML. Here is Aqui está my solution a minha solução .

Schema:
CREATE TABLE `comments` ( CREATE TABLE `` observações (
`id` INT NOT NULL AUTO_INCREMENT , `id` INT NOT NULL AUTO_INCREMENT,
`url` VARCHAR( 255 ) NOT NULL , `url` VARCHAR (255) NOT NULL,
`ip` VARCHAR( 30 ) NOT NULL , `ip` VARCHAR (30) NOT NULL,
`author` VARCHAR( 255 ) DEFAULT ‘Anonymous Coward’ NOT NULL , `autor` VARCHAR (255) DEFAULT 'Anónimos cobarde' NOT NULL,
`location` VARCHAR( 255 ) DEFAULT ‘Cyberspace’ NOT NULL , `local` VARCHAR (255) DEFAULT 'ciberespaço' NOT NULL,
`comment` TEXT NOT NULL , `comentar` TEXT NOT NULL,
`when` TIMESTAMP NOT NULL, `` quando TIMESTAMP NOT NULL,
PRIMARY KEY ( `id` ) ) PRIMARY KEY ( `id`))
);

Design notes: Design notas:
The code for adding comment passed the url of the page. O código para adicionar comentário passou o url da página. When the page is loaded a sajax call is made to fetch all the comment for the url of the page. Quando a página é carregada sajax uma chamada é feita para buscar todos os comentários para o url da página. New comments are displayed instantaneously as new comments are fetched after a comment has been submitted. Novos comentários são exibidos instantaneamente as novas observações são recuperadas depois de um comentário foi apresentado. This can additionally fetch comments from other users. Isto pode também buscar comentários de outros utilizadores. However I have decided not to implement timed refresh as that may unnecessarily increase server load without adding much value to users. No entanto tenho decidiu não realizar a temporização refrescar as que podem aumentar desnecessariamente servidor carga sem grande utilidade para os usuários. Validation checks are made to detect and not add duplicate comments. Validação sejam efectuados controlos para detectar e não duplicar adicionar comentários. Comment throttling by same user can be added to prevent abuse. Comentário throttling pelo mesmo usuário pode ser adicionado para evitar abusos.

Hope that helps in designing your commenting system. Esperamos que ajuda na concepção comentando o seu sistema.