Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

necesito opinión e ideas sobre mi base de datos

Estas en el tema de necesito opinión e ideas sobre mi base de datos en el foro de Bases de Datos General en Foros del Web. Bueno primero tengo mucho sueño, asi que si me dejo algo me lo hacen saber y mañana lo publcio Estoy diseñando la base de datos ...
  #1 (permalink)  
Antiguo 05/01/2010, 19:43
N4X
 
Fecha de Ingreso: enero-2010
Mensajes: 23
Antigüedad: 14 años, 4 meses
Puntos: 0
necesito opinión e ideas sobre mi base de datos

Bueno primero tengo mucho sueño, asi que si me dejo algo me lo hacen saber y mañana lo publcio

Estoy diseñando la base de datos para un sitio que queremos hacer con unos amigos.

Esto es lo que tengo diseñado:
url:http://img266.imageshack.us/img266/8137/esquemamysql.jpg

esta todo compactado para que entre en la imagen :-X

1. Las tablas son myisam y llevan foreing keys (FK) algún problema en ello??

Bueno e separado las diferentes partes por colores, las que no tienen color son funciones generales.

Los mediumint(8) son valores de un id de usuario smf.. no e puesto la tabla porque es un lio

Todas las relaciones son 1:N con FK.

Empiezo a explicar:

Amarillo superior:
es un sistema de noticias con comentarios, una tabla de noticias y otra de comentarios.
la tabla secciones es porque habrá varias páginas que usen el sistema de noticias, entonces con esa tabla me ahorro hacer varias tablas iguales.
(el web_ es solo un prefijo para distinguir de smf)

Azul:

es una area de consultas, sigue un sistema casi igual que el de las noticias.
la tabla de secciones se refiere al area de consulta que se hará.
ejemplo: seccion: informatica; seccion:medio ambiente, etc

Verde pequeño:
Es una bd que solo linka con el responsable de la ong.
Contiene una descripcion y esas cosas xD

verde grande:
es un sistema de peticiones de oración [ok si no creen me da igual, de que trata la web no es el caso ] y mas abajo otro sistema de noticias.
El sistema de noticias solo varia en los otros que se guardan noticias para todo tipo de users-visitantes y noticias de ambito privado (un grupo concreto de users).

El sistema de oración es lo mas complicado de toda la web creo yo, lo explico mas o menos:

Contamos con un responsable de país (un admin), responsable de Comunida autonoma, provincia, comarca y ciudad.
Bien, a los usuarios se les presentan los datos según los datos que dieron de donde son y cuando envian una petición esta se envia al responsable directo (lease el de ciudad), si el de ciudad cree que es una peticion de caracter comarcal la envia a su superior (el responsable de comarca).
Para eso habia pensado usar el campo de "relevancia" cuanto mas alto mas arriba busca en la bd, pero aun no lo tengo del todo claro....
el resto son categorias de oracion y los votos.

Bueno también se pensó el crear un Top10 de las peticiones para cada zona.

Explico como va esa parte:

El responsable de una ciudad recive X peticiones de las cuales toma 10 como importantes, esas 10 se guardan en un top10 de su ciudad.
Esas mismas 10 se envian al responsable de comarca (las de todas las ciudades de la comarca), el responsable recive todas ellas y selecciona 10 que agrega al top 10 de la comarca, esas 10 se envian a la provincia y así hasta llegar al final.

Esa parte no se como diseñarla, así que si hay ideas son bien recibidas

Rosa:

Es como una red social, los usuarios se agregan a las categorias que les gustan en la pagina principal se listan las ultimas noticias de todas las redes y en cada red las noticias de esa red.

Amarillo abajo:

es una zona de indignados, ejemplo: estoy indignado "porque el pan es caro"

entonces hay ciertas tematicas (indignaciones politicas, de familia, dinero... etc)
y la gente puede comentarlas y votar por ellas.
[hr]

y eso es todo!
el modlog es un log de las acciones de los mod's
y la papelera no es mas que eso :o

el id_mod también linka con la tabla de usuarios smf, pero en estos casos le id_mod suele ser quien acepta los comentarios que requieren moderacion

Este es mi segundo diseño de una bd tan grande así que no me maten!!! el primero fue al finalizar el FP I... y espero ancioso el FP II el año que viene para poder darle mas caña al mysql...
si hay grandes catastrofes en el diseño me pegan un poco y lo corrijo :o

Desde ya mis mas sinceras gracias por el simple hecho de leer esto.
Y si amportan alguna idea será bien recibida y valorada.

Cualquier dato extra que necesiten haganmelo saber!

saludos
nax
  #2 (permalink)  
Antiguo 06/01/2010, 05:38
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: necesito opinión e ideas sobre mi base de datos

Cita:
1. Las tablas son myisam y llevan foreing keys (FK) algún problema en ello??
No existen las FK en las tablas MyISAM. Para usar restricciones de FK tienes que usar InnoDB.

Cita:
Los mediumint(8) son valores de un id de usuario smf.. no e puesto la tabla porque es un lio
SI no pones todas las tablas, el análisis que hagamos puede tener errores graves. Tenlo en cuenta.
Así como lo planteas, parecen un grupo de bases independientes entre sí. Su vinculación es invisible.

Cita:
Es una bd que solo linka con el responsable de la ong.
¿Cómo encaja ese responsable con el conjunto? ¿Qué función cumple en relación con las otras tablas?

Cita:
El sistema de noticias solo varia en los otros que se guardan noticias para todo tipo de users-visitantes y noticias de ámbito privado (un grupo concreto de users).
Eso tiene más de problema procedimental que de diseño relacional. Los problemas procedimentales no se resuelven en el modelo de datos, son cosa de los programas. Duplicar estructuras que sólo varían en un atributo (privado/publico) no rae beneficios sino complicaciones; el uso indica que deben conformar una sola entidad.
Cita:
Para eso habia pensado usar el campo de "relevancia" cuanto mas alto mas arriba busca en la bd, pero aun no lo tengo del todo claro....
Un campo relevancia es como un campo categoría en otros órdenes. Es un campo FK a una tabla de categorizaciones, lo que evita problemas de interpretación. Y la búsqueda es asunto de las consultas. No de posiciones en la base, porque estas son controladas por su PK.

Cita:
Bueno también se pensó el crear un Top10 de las peticiones para cada zona.

Explico como va esa parte:

El responsable de una ciudad recive X peticiones de las cuales toma 10 como importantes, esas 10 se guardan en un top10 de su ciudad.
Esas mismas 10 se envian al responsable de comarca (las de todas las ciudades de la comarca), el responsable recive todas ellas y selecciona 10 que agrega al top 10 de la comarca, esas 10 se envian a la provincia y así hasta llegar al final.
Supongo que habrás tenido en cuenta que el "top 10" es un concepto variante en el tiempo, por lo que ese Top 10, o bien representa una tabla donde se guarden históricamente las 10 de cada día, o representa una cantidad fija de registros de una tabla relacionados con la ciudad.
En cualquier caso hay que analizar si es sólo procedimental o hay que guardar ese rango. Si es procedimental, la base no interviene; solamente es una consulta.

Cita:
es una zona de indignados, ejemplo: estoy indignado "porque el pan es caro"
entonces hay ciertas tematicas (indignaciones políticas, de familia, dinero... etc)
y la gente puede comentarlas y votar por ellas.
Si los usuarios pueden votar en otras cosas, entonces la "indignación" es una categoría del voto o del post, y no una entidad, y por tanto tampoco una tabla.

Ten en cuenta que una base de datos debe ser flexible, por sobre todas las cosas. Si construyes un esquema relacional demasiado ad-hoc, luego no soportará las modificaciones de la interfase o la interfase deberá ser ajustada a los límites de la base, lo que también es un error.

En mi opinión hay elementos que en tu diseño permitirían una mejor generalización de uso con solamente repensar su esquema de relaciones no mandatorias (las restricciones de FK).
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 06/01/2010, 09:54
N4X
 
Fecha de Ingreso: enero-2010
Mensajes: 23
Antigüedad: 14 años, 4 meses
Puntos: 0
Respuesta: necesito opinión e ideas sobre mi base de datos

las tablas se relacionan todas entre si a través de el usuario (autor, id_mod) que va a parar a una tabla de SMF.

En principio las tablas son "independientes" a esto me refiero que cada sección es una sección de la web que no necesariamente guarda una relación directa con los demás sino es por los usuarios que la usan.

El tema de los votos en indignación, la tabla la cree para llevar el conteo de quien vota en que parte, pues solo se permite un voto por usuario. me pareció un buen metodo pero quizá no sea así.

lo del top10: si.... e estado pensando en cuanto a la idea de guardarlo como historico o solo almacenar esas 10... pero también entrarian las demas que no son seleccionadas para que se puedan seleccionar... o ... aun no lo tengo claro X_x

lo del problema de publico y privado.. veré si doy con una forma mas optima de juntarlo a la otra tabla


gracias por el analisis, y veré en donde puedo mejorarlo y os traeré de nuevo un modelo xD

saludos
nax

Etiquetas: ideas, opinión
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:27.