Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - WHK

#1201
En ves de hacer eso lo que yo haría es una sola tabla con usuarios y una tabla con tipos de usuarios e ir asociando los tipos de usuarios con los usuarios (grupos de usuarios) y luego la tabla de usuarios asignarle un id de sede, ahora, que pasa si un usuario está en mas de una sede? en ese caso necesitarás una tabla adicional relacional entre usuarios y sedes.

Mira, aca hice uno en MySQL pero te puede servir para hacerlo en access:

http://41.media.tumblr.com/feb031b55808afc1670a28f7a0b2eb14/tumblr_nqm3xhKGJZ1uzz9lco1_1280.png


Código (sql) [Seleccionar]
-- MySQL Workbench Synchronization
-- Generated: 2015-06-27 13:45
-- Model: New Model
-- Version: 1.0
-- Project: Name of the project
-- Author: WHK

SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL,ALLOW_INVALID_DATES';

CREATE TABLE IF NOT EXISTS `blank`.`sedes` (
 `id` INT(11) NOT NULL AUTO_INCREMENT,
 `campus` VARCHAR(512) NOT NULL,
 `direccion` VARCHAR(512) NOT NULL,
 PRIMARY KEY (`id`))
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_general_ci;

CREATE TABLE IF NOT EXISTS `blank`.`sedes_telefonos` (
 `sede_id` INT(11) NOT NULL,
 `codigo_pais` INT(11) NOT NULL,
 `codigo_ciudad` INT(11) NOT NULL,
 `numero` INT(11) NOT NULL,
 `es_fijo` TINYINT(1) NOT NULL DEFAULT 0,
 PRIMARY KEY (`sede_id`),
 CONSTRAINT `fk_sedes_telefonos_sede`
   FOREIGN KEY (`sede_id`)
   REFERENCES `blank`.`sedes` (`id`)
   ON DELETE CASCADE
   ON UPDATE CASCADE)
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_general_ci;

CREATE TABLE IF NOT EXISTS `blank`.`usuarios` (
 `id` INT(11) NOT NULL AUTO_INCREMENT,
 `nombres` VARCHAR(45) NOT NULL,
 `apellidos` VARCHAR(45) NOT NULL,
 `direccion` VARCHAR(512) NOT NULL,
 PRIMARY KEY (`id`))
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_general_ci;

CREATE TABLE IF NOT EXISTS `blank`.`usuarios_telefonos` (
 `usuario_id` INT(11) NOT NULL AUTO_INCREMENT,
 `codigo_pais` INT(11) NOT NULL,
 `codigo_ciudad` INT(11) NOT NULL,
 `numero` INT(11) NOT NULL,
 `es_fijo` TINYINT(1) NOT NULL DEFAULT 0,
 PRIMARY KEY (`usuario_id`),
 CONSTRAINT `fk_usuarios_telefonos_usuarios1`
   FOREIGN KEY (`usuario_id`)
   REFERENCES `blank`.`usuarios` (`id`)
   ON DELETE CASCADE
   ON UPDATE CASCADE)
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_general_ci;

CREATE TABLE IF NOT EXISTS `blank`.`correos` (
 `usuario_id` INT(11) NOT NULL,
 `correo` VARCHAR(65) NOT NULL,
 PRIMARY KEY (`usuario_id`),
 CONSTRAINT `fk_usuarios_correos_usuarios1`
   FOREIGN KEY (`usuario_id`)
   REFERENCES `blank`.`usuarios` (`id`)
   ON DELETE CASCADE
   ON UPDATE CASCADE)
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_general_ci;

CREATE TABLE IF NOT EXISTS `blank`.`usuarios_sedes_relacion` (
 `usuario_id` INT(11) NOT NULL,
 `sede_id` INT(11) NOT NULL,
 PRIMARY KEY (`usuario_id`, `sede_id`),
 INDEX `fk_usuarios_sedes_relacion_sede1_idx` (`sede_id` ASC),
 CONSTRAINT `fk_usuarios_sedes_relacion_usuarios1`
   FOREIGN KEY (`usuario_id`)
   REFERENCES `blank`.`usuarios` (`id`)
   ON DELETE CASCADE
   ON UPDATE CASCADE,
 CONSTRAINT `fk_usuarios_sedes_relacion_sede1`
   FOREIGN KEY (`sede_id`)
   REFERENCES `blank`.`sedes` (`id`)
   ON DELETE CASCADE
   ON UPDATE CASCADE)
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_general_ci;

CREATE TABLE IF NOT EXISTS `blank`.`usuarios_roles` (
 `id` INT(11) NOT NULL AUTO_INCREMENT,
 `nombres` VARCHAR(45) NOT NULL,
 PRIMARY KEY (`id`))
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_general_ci;

CREATE TABLE IF NOT EXISTS `blank`.`usuarios_roles_relacion` (
 `usuario_id` INT(11) NOT NULL,
 `usuarios_rol_id` INT(11) NOT NULL,
 PRIMARY KEY (`usuario_id`, `usuarios_rol_id`),
 INDEX `fk_usuarios_roles_relacion_usuarios_roles1_idx` (`usuarios_rol_id` ASC),
 CONSTRAINT `fk_usuarios_roles_relacion_usuarios1`
   FOREIGN KEY (`usuario_id`)
   REFERENCES `blank`.`usuarios` (`id`)
   ON DELETE CASCADE
   ON UPDATE CASCADE,
 CONSTRAINT `fk_usuarios_roles_relacion_usuarios_roles1`
   FOREIGN KEY (`usuarios_rol_id`)
   REFERENCES `blank`.`usuarios_roles` (`id`)
   ON DELETE CASCADE
   ON UPDATE CASCADE)
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_general_ci;

CREATE TABLE IF NOT EXISTS `blank`.`alumnos_datos` (
 `usuario_id` INT(11) NOT NULL,
 `carrera_id` INT(11) NOT NULL,
 PRIMARY KEY (`usuario_id`, `carrera_id`),
 INDEX `fk_alumnos_datos_carreras1_idx` (`carrera_id` ASC),
 CONSTRAINT `fk_alumnos_datos_usuarios1`
   FOREIGN KEY (`usuario_id`)
   REFERENCES `blank`.`usuarios` (`id`)
   ON DELETE CASCADE
   ON UPDATE CASCADE,
 CONSTRAINT `fk_alumnos_datos_carreras1`
   FOREIGN KEY (`carrera_id`)
   REFERENCES `blank`.`carreras` (`id`)
   ON DELETE CASCADE
   ON UPDATE CASCADE)
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_general_ci;

CREATE TABLE IF NOT EXISTS `blank`.`carreras` (
 `id` INT(11) NOT NULL,
 `nombre` VARCHAR(45) NOT NULL,
 PRIMARY KEY (`id`))
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_general_ci;

CREATE TABLE IF NOT EXISTS `blank`.`administrativo_datos` (
 `usuario_id` INT(11) NOT NULL,
 `cargo_id` INT(11) NOT NULL,
 PRIMARY KEY (`usuario_id`, `cargo_id`),
 INDEX `fk_administrativo_datos_cargos1_idx` (`cargo_id` ASC),
 CONSTRAINT `fk_administrativo_datos_cargos1`
   FOREIGN KEY (`cargo_id`)
   REFERENCES `blank`.`cargos` (`int`)
   ON DELETE CASCADE
   ON UPDATE CASCADE,
 CONSTRAINT `fk_administrativo_datos_usuarios1`
   FOREIGN KEY (`usuario_id`)
   REFERENCES `blank`.`usuarios` (`id`)
   ON DELETE CASCADE
   ON UPDATE CASCADE)
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_general_ci;

CREATE TABLE IF NOT EXISTS `blank`.`cargos` (
 `int` INT(11) NOT NULL AUTO_INCREMENT,
 `nombre` VARCHAR(45) NOT NULL,
 PRIMARY KEY (`int`))
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_general_ci;

CREATE TABLE IF NOT EXISTS `blank`.`catedraticos_datos` (
 `usuario_id` INT(11) NOT NULL,
 `asignatura_id` INT(11) NOT NULL,
 PRIMARY KEY (`usuario_id`, `asignatura_id`),
 INDEX `fk_catedraticos_asignaturas1_idx` (`asignatura_id` ASC),
 CONSTRAINT `fk_catedraticos_asignaturas1`
   FOREIGN KEY (`asignatura_id`)
   REFERENCES `blank`.`asignaturas` (`id`)
   ON DELETE CASCADE
   ON UPDATE CASCADE,
 CONSTRAINT `fk_catedraticos_usuarios1`
   FOREIGN KEY (`usuario_id`)
   REFERENCES `blank`.`usuarios` (`id`)
   ON DELETE NO ACTION
   ON UPDATE NO ACTION)
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_general_ci;

CREATE TABLE IF NOT EXISTS `blank`.`asignaturas` (
 `id` INT(11) NOT NULL,
 `nombre` VARCHAR(45) NOT NULL,
 PRIMARY KEY (`id`))
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_general_ci;


SET SQL_MODE=@OLD_SQL_MODE;
SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;


Mis argumentos:
Los usuarios se encuentran en una sola tabla, de esta manera la selección de personas por sede es mas rápido, cada usuario ya sea alumno o profesor estará asociado a una sede cosa que en tu db no estaba considerado, cada usuario puede tener mas de un correo y mas de un telefono, las busquedas se podrán realizar por codigo de pais de telefono en caso de que necesiten hacer algun tipo de envio masivo de sms o llamadas, la base de datos está completamente desnormalizada asi que si necesitas mas performance la normalizas, no necesitarás muchos joins para obtener todos los correos ya que todo está centralizado en una sola tabla, podrás hacer que tu sistema web administre carreras, cargos y asignaturas ya que en tu db solo ingresabas texto plano y si alguien inserta un espacio en blanco extra o un acento adicional ibas a tener duplicidad de datos y no hubieras podido hacer una búsqueda homogenea y no hubieras podido hacer modificaciones, por ejemplo digamos que la asignatura de lenguaje ya no se llamará lenguaje sino castellano, entonces lo cambias desde la columna y no necesitas cambiar todos los registros. No necesitarás una tabla de correos y telefonos para cada tipo de usuario.

Dudas?

Saludos.
#1202
Hace tiempo se me había ocurrido eso, de hecho tengo un proyecto detenido que contempla lo del adelantamiento y otras cosas mas como condición del camino a través de sensores, proximidad de ortos vehículos, peligro de velocidades, luces en el suelo en ves de pintura, asistencia en la conducción de manera inteligente, cámara trasera, etc y todo hecho con android y un par de cámaras y sensores, pagos automáticos en la carretera sin suscripción, etc.

Pero eso ya es otro tema xD
#1203
Aca en chile eso no resultaría, quedarian todos los camiones con las pantallas rotas a piedradas en menos de 1 día o lleno de grafitis xDD lo que yo haría sería lo mismo pero con tecnología wifi y una tablet del lado del conductor y que cuando se acerque a un camino con esta tecnologia que le aparezca inmediatamente su parte frontal en vivo
#1204
Y como se ejecuta? porque una cosa es que venga cifrado y otra muy distinta es que se ejecute. En ese caso forzadamente talves se ejecute desde algún exploit utilizando algún agujero del sistema, esto quiere decir que no afecta a todos los sistemas por igual y solo usa sistemas sin actualización o sin protección.
#1205
Se subieron al tren muy tarde, les ha pasado lo mismo que a nokia, por querer mantener una tecnología de picapiedras terminaron por el suelo en ves de seguir el ritmo del mercado actual. Samsung por ejemplo junto a LG y Sony supieron hacerlo bien, de hecho antes samsung lo conocía porque hacia televisores y cosas para la casa pero jamás pensé que harían celulares y  ahora les ha dado hasta por fabricar vehículos y de buena calidad.

Para mi el mejor ejemplo de progreso e innovación y saber seguir el camino de lo que quiere la gente no es samsung ni sony sino motorola a pesar de que no es el lider pero ha sido una de las muy pocas empresas que comenzó con un negocio y terminó haciendolo bien y de manera oportuna. Supo elegir la tecnología adecuada tanto en hardware como en software cosa que muy pocos han podido hacer a lo largo de los años:















Hay otras empresas que no innovan y lo único que hacen es tratar de hacer lo que ya está hecho y siempre lo hacen tarde, por lo general cuando ya se construyó, se lanzó al mercado y se explotó ahi recién lo toman y lo fabrican, esas compañías también tienen sus días contados en especial una.
#1206
CitarEl fútbol gana su primera gran batalla a la piratería

Piratería es enlazar?
#1208
Noticias / Re: El ADSL se muere
22 Junio 2015, 02:03 AM
Aca en chile en el sector donde vivo con suerte llega el ADSL y lo máximo que llegan son 4mb (algo asi como 256kb/s de bajada y 40kb/s de subida) y es de Movistar (telefonica).
#1209
Cita de: wolfbcn en 18 Junio 2015, 22:29 PM¿Y ahora qué, se sumará Nokia a Android como debió hacer desde el principio?

Al parecer si:
http://andro4all.com/2015/06/nokia-smartphones-android-2016
http://www.xatakandroid.com/moviles-android/nokia-vuelve-seguramente-con-android

De todas maneras me llamó mucho la atención este título:
CitarNokia, llegas muy tarde. Nokia podría necesitar Android para volver al móvil, pero Android ya no necesita a Nokia

http://www.xatakandroid.com/moviles-android/nokia-podria-necesitar-android-para-volver-al-movil-pero-android-ya-no-necesita-a-nokia
#1210
A mi me parece una idea muy buena teniendo en cuenta que hay muchos post relacionados con ciencia y hay usuarios suficientes como para llenar una sección. A demás el foro es de hacking y no de programación asi que apoyo la idea.