elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Estamos en la red social de Mastodon


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  Bases de Datos (Moderador: Carloswaldo)
| | | |-+  crear tablas para un foro
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: crear tablas para un foro  (Leído 4,655 veces)
Chazy Chaz

Desconectado Desconectado

Mensajes: 65



Ver Perfil
crear tablas para un foro
« en: 15 Mayo 2012, 00:59 am »

Hola, alguien podria ayudarme a crear columnas para las tablas de un codigo php. Es un modelo de un foro super simple.

En las funciones insert de los metodos add_topic y add_post() tengo declaradas las columnas de las tablas, o eso tengo entendido xD Lo unico que no se hacer es dar datos a las columnas hehe.

Alguien podria ayudarme a saber que tipo de datos necesita cada columna??

Para añadir un topic a la DB uso esto:
Código:
// Insert the topic
        $insert_topic = $this->DB->insert("forum_topics", array(
            'topic_subject' => $subject,
            'topic_by' => $poster,
            'last_post_time' => $time,
            'topic_forum' => $forum,
            'is_sticky' => $sticky,
            'is_closed' => $closed,
            'is_global' => $global
        ));
// Insert the actual post
            $insert_post = $this->DB->insert("forum_posts", array(
                'post_content' => $content,
                'post_by' => $poster,
                'post_time' => $time,
                'post_topic' => $topicid
            ));
// Update the forum count
                $rows = $this->DB->update("forum_forums", array(
                    'total_topics' => "(`total_topics` + 1)",
                    'total_posts' => "(`total_posts` + 1)",
                    'last_post_id' => $lastpost_id,
                    'last_topic_id' => $topicid,
                    'last_topic_title' => $subject,
                    'last_post_time' => $time,
                    'last_post_poster' => $poster
                ), "`forum_id`='".$forum."'");

Por lo que tengo que crear las tablas con esa informacion, por ejemplo:
Código:
-- --------------------------------------------
-- Table structure for `forum_topic`
-- --------------------------------------------
DROP TABLE IF EXISTS `forum_topic`
CREATE TABLE `forum_topic` (
`topic_subject` varchar(100) NOT NULL, // varchar porque es una cadena de caracteres, ¿cierto?
`topic_by`,
`last_post_time`,
`topic_forum`,
`is_sticky`,
`is_closed`,
`is_global`,
PRIMARY KEY (``)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

Por lo que se, los datos de las columnas van en función al tipo de datos que se va a insertar dentro de ellas, por ejemplo, si se va a insertar un numero seria del tipo int(cantidadmaxima). Es parecido cuando declaras en c o c++, tienes que decirlo que tipo de caracter es, ¿cierto? Corregirme si me equivoco en algo.

Estoy empezando con todo esto de php y las bases de datos y necesito algo de ayuda :S

Gracias

salu2
dew ;)


En línea

el-brujo
ehn
***
Desconectado Desconectado

Mensajes: 21.637


La libertad no se suplica, se conquista


Ver Perfil WWW
Re: crear tablas para un foro
« Respuesta #1 en: 15 Mayo 2012, 17:29 pm »

Puedes tomar el ejemplo la tabla topics de SMF 2


Código
  1. CREATE TABLE {$db_prefix}topics (
  2.  id_topic mediumint(8) UNSIGNED NOT NULL AUTO_INCREMENT,
  3.  is_sticky tinyint(4) NOT NULL DEFAULT '0',
  4.  id_board SMALLINT(5) UNSIGNED NOT NULL DEFAULT '0',
  5.  id_first_msg INT(10) UNSIGNED NOT NULL DEFAULT '0',
  6.  id_last_msg INT(10) UNSIGNED NOT NULL DEFAULT '0',
  7.  id_member_started mediumint(8) UNSIGNED NOT NULL DEFAULT '0',
  8.  id_member_updated mediumint(8) UNSIGNED NOT NULL DEFAULT '0',
  9.  id_poll mediumint(8) UNSIGNED NOT NULL DEFAULT '0',
  10.  id_previous_board SMALLINT(5) NOT NULL DEFAULT '0',
  11.  id_previous_topic mediumint(8) NOT NULL DEFAULT '0',
  12.  num_replies INT(10) UNSIGNED NOT NULL DEFAULT '0',
  13.  num_views INT(10) UNSIGNED NOT NULL DEFAULT '0',
  14.  locked tinyint(4) NOT NULL DEFAULT '0',
  15.  unapproved_posts SMALLINT(5) NOT NULL DEFAULT '0',
  16.  approved tinyint(3) NOT NULL DEFAULT '1',
  17.  PRIMARY KEY (id_topic),
  18.  UNIQUE last_message (id_last_msg, id_board),
  19.  UNIQUE first_message (id_first_msg, id_board),
  20.  UNIQUE poll (id_poll, id_topic),
  21.  KEY is_sticky (is_sticky),
  22.  KEY approved (approved),
  23.  KEY id_board (id_board),
  24.  KEY member_started (id_member_started, id_board),
  25.  KEY last_message_sticky (id_board, is_sticky, id_last_msg),
  26.  KEY board_news (id_board, id_first_msg)
  27. ) ENGINE=MyISAM;

Un consejo:

Deshágase de las tablas de texto

Con frecuencia, al hacer consultas de ordenación (sort), union (join) y otras operaciones, MySQL necesita para crear una tabla temporal. MySQL por lo general trata de crear estos como las tablas de memoria, sin embargo, si la tabla resultante es TEXT o BLOB, es incapaz de hacer esto, en lugar de crearlo como una tabla MyISAM en el disco. Esto puede matar a rendimiento si no se han / tmp montada en la memoria o si tiene un  key buffer pequeño.

La conversión de las columnas TINYTEXT a VARCHAR (255) es recomendado.

Fuente:
http://www.simplemachines.org/community/index.php?topic=293441.msg1935333#msg1935333


En línea

Chazy Chaz

Desconectado Desconectado

Mensajes: 65



Ver Perfil
Re: crear tablas para un foro
« Respuesta #2 en: 15 Mayo 2012, 19:25 pm »

Muchas gracias, voy a ver si lo estudio y me entero un poco del asunto hehe

Gracias!

salu2
dew ;)
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Ayuda para crear un foro
Desarrollo Web
Mr.Blue 8 4,431 Último mensaje 11 Mayo 2010, 21:59 pm
por Mr.Blue
Como crear secciones para un foro hecho con SMF
Dudas Generales
Hatake Kakashi 0 3,469 Último mensaje 21 Mayo 2010, 23:51 pm
por Hatake Kakashi
sugerencias para crear tablas en php y mysql
PHP
hack-4-life 4 4,136 Último mensaje 22 Mayo 2010, 06:50 am
por hack-4-life
Crear Tablas Raibow
Wireless en Linux
DeBBuGGeR 3 8,968 Último mensaje 18 Febrero 2011, 20:01 pm
por DeBBuGGeR
Pasos para crear un foro?
Desarrollo Web
Edu 8 15,420 Último mensaje 10 Junio 2011, 01:28 am
por Edu
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines