Base de dades

Ir abajo

Base de dades

Mensaje  miki el Jue Feb 25, 2010 11:11 pm

He fet el primer esbós de la base de dades. La taula dels fòrums la tinc dividida en 6 taules diferents en l'esbós de paper i llapis i a l'hora de passar-la a pc, l'he acabat reduint a 1 sola taula. No sé si se m'ha anat la "flapa" mil o què però em sembla que pot acabar sent tan fàcil com això. Ja em corregiràs/eu i afegireu coses que creieu que m'he deixat.



Explico per sobre:

Taula Usuari:
Nom: Nom de la persona (p.e: Miquel)
Nick: nickname...no hase falta desir nada más.
Mail: correu electrònic.
Contrasenya: la contrasenya que hagi introduït però codificada en MD5 o qualsevol pijada d'aquestes que són segures.
Preferencies: Ho he posat com un atribut però en realitat seria un atribut per cada tipus de concurs que hi hagi. La idea és que per exemple si hi ha concursos de fotografia i videojocs doncs que siguin dos atributs booleans i si val 1 és que l'usuari hi està interessat (per al mailing). També ho havia pensat de separar en una taula a part per modular-ho una mica però no tinc clar que valgui la pena. En tot cas si no agrada es canvia.
Validat? Atribut booleà: inicialment valdrà 0 i quan l'usuari hagi anat al mail i hagi clickat l'enllaç per confirmar que aquella direcció de correu existeix, el valor es posarà a 1.

Taula Seguiment
Aquesta taula servirà d'enllaç entre usuari i concurs per tal de saber quins concursos són d'interés per l'usuari (de l'estil de seguir artículo a ebay).

Taula Concurs
Nom: Nom del concurs.
id: un codi únic per a aquell concurs.
Data_concurs: Data en que aquell concurs finalitza.
Organitza: Entitat que organitza el concurs.
Resum: Un petit resum del concurs, paraules clau, introducció...
Detalls: Aquí aniria un text més llarg explicant bé el concurs etc.
Contacte: Pàgina web del concurs o mail de contacte.
Premi: Què es guanya al concurs (suposo que estaria escrit a detalls també).
Finalitzat? atribut booleà: indicaria si encara s'hi pot participar o no.

Taula Forum_Tema_Post
id_forum: seria la mateixa id que el concurs. Com que cada concurs tindrà un únic forum poden compartir id.
Tema: El nom del tema dins el forum.
num_post: número del post dintre el tema. Amb aquests tres atributs controlem els diferents posts de cada tema dins d'un fòrum.
Data_post: data de publicació del post.
Num_edits: número de vegades que s'ha editat.
Nick: Nickname de la persona que l'ha escrit.

Taula Usuaris_Ban
Nick: nickname de la persona bannejada.
MAC: direcció MAC de la persona bannejada.

_________________
So you say you learn faster by jumping in and you'll learn by just making your dream 3D MMORPG and you'll just pick up what you need as you need it Well here's a guide to help you along your way:
-Go to your local market
-Buy a whole fish. Salmon or Cod is recommended but even a Catfish will do
-Go home and turn on your computer
-Start up your IDE of choice
-Now take that fish you bought and smack yourself in the head with it
Repeat step 5 until thought of "jumping in" leaves your mind
avatar
miki
Admin

Mensajes : 53
Fecha de inscripción : 12/06/2009
Edad : 31
Localización : Barcelona de les Abadesses

Ver perfil de usuario

Volver arriba Ir abajo

Re: Base de dades

Mensaje  aleix.caballeria el Jue Feb 25, 2010 11:44 pm

encara no ho he llegit tot, no t'enganyaré, però crec que una de les claus pot ser que els usuaris puguin personalitzar el seu perfil, així com posar-hi fotos i interessos. La gent, per sistema, es una pervertida i això pot donar lloc a crear una comunitat interessant en la que puguis coneixer i veure com és l'altre gent

aleix.caballeria

Mensajes : 5
Fecha de inscripción : 25/02/2010

Ver perfil de usuario

Volver arriba Ir abajo

Re: Base de dades

Mensaje  miki el Jue Feb 25, 2010 11:49 pm

Tens raó, caldria afegir-hi doncs coses de l'estil:
- Sexe
- Data de neixement
- Localització
- Ocupació
- Web personal
- Firma pels posts
- Interessos

Algu tipu això? quan dius posar fotos que vols dir? a part de la foto d'avatar posar fotos a sac tipus facebook o què?

_________________
So you say you learn faster by jumping in and you'll learn by just making your dream 3D MMORPG and you'll just pick up what you need as you need it Well here's a guide to help you along your way:
-Go to your local market
-Buy a whole fish. Salmon or Cod is recommended but even a Catfish will do
-Go home and turn on your computer
-Start up your IDE of choice
-Now take that fish you bought and smack yourself in the head with it
Repeat step 5 until thought of "jumping in" leaves your mind
avatar
miki
Admin

Mensajes : 53
Fecha de inscripción : 12/06/2009
Edad : 31
Localización : Barcelona de les Abadesses

Ver perfil de usuario

Volver arriba Ir abajo

Re: Base de dades

Mensaje  JS el Vie Feb 26, 2010 1:06 am

Bé bé bé... coses, coses:

Usuari
- Validat: jo no ho posaria com un booleà. Fem que sigui un datetime. Quan l'usuari es registra les dades entren a la base de dades i el datetime es posa a 7 dies més enllà, per exemple. Posant un servei de cron diari al servidor (si el tenim dedicat), o simplement creant un script d'activació manual des del perfil d'administrador de la web, netegem els usuaris no "activats" que es van registrar fa més de 7 dies. Quan un usuari activi el seu compte, només cal posar el datetime a un valor de l'estil tot zeros o quelcom així per marcar el compte com activat. Si no, tb podem deixar l'atribut de "validat" i incorporar això del datetime en un altre atribut.

- Preferències: la idea em mola. Tot i això, com que el tipus de concursos pot variar amb el temps, millor creem una nova taula, "tipus_concurs", amb els atributs "id" i "nom_tipus". Ara, el camp "concurs" > "tipus" el fem de referència a "tipus_concurs" > "id". De la mateixa manera, creem una nova taula "Preferències" amb els atributs "id_usuari" (jo treballaria amb ids en la majoria de casos) i "id_tipus_concurs".

- Entitat: for future's sake, millor canviem el nom del camp a "rang" o "privilegis" i el seu tipus a enter. D'aquesta manera, a la llarga podrem tenir diferents rangs d'usuaris publicadors i d'usuaris administradors.

A part d'això, tots els atributs que calgui per guardar més coses sobre el perfil d'usuari i les seves degeneracions, com diu l'Aleix.


Concurs
Només cal afegir dos booleans: validat (cal parlar una mica d'aquest tema) i jo hi posaria "obert" (o un altre nom) per indicar si encara s'accepten concursants. Més que res és per tenir diferents status a mostrar i filtrar en el cercador.


Fòrum_Tema_Post
Jo ho separaria en tres taules diferents:

forum_fil
id:enter
títol:varchar o text, tan és.
descripció: ídem
bloquejat: enter (0:false, 1:bloquejat per usuari amb privilegis, 2:bloquejat per admin i irrevocable per usuaris no administradors)
id_autor: enter
id_concurs: enter (no cal tenir taula de fòrums ja que si no tenen contingut, no hi ha fòrum)

forum_tema
id:enter
títol:varchar o text.
bloquejat: enter (0:false, 1:bloquejat per usuari amb privilegis, 2:bloquejat per admin i irrevocable per usuaris no administradors)
censurat: booleà
id_autor: enter
id_fil: enter

forum_post
id:enter
títol:varchar o text (null)
censurable: enter (els usuaris poden marcar un post com censurable, al cap de n marques, l'admin (a la llarga podem crear nous rangs d'usuari) és avisat i pot revisar si cal censurar el post.
censurat: booleà
id_autor:enter
id_tema:enter



De moment això és tot. Vaig a sobar-la que no m'hi veig de cap ull.

S@s out queen

_________________
1f u c4n r34d th15 u r34lly n33d t0 g37 l41d

Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning.

PS: I'm not anti-social, I'm just not user friendly...
avatar
JS

Mensajes : 178
Fecha de inscripción : 12/06/2009

Ver perfil de usuario

Volver arriba Ir abajo

Re: Base de dades

Mensaje  miki el Lun Mar 15, 2010 6:13 pm

Després de la reunió de l'altre dia i revisant els posts antics i nous he fet un nou diagrama de la BBDD. Pot ser que m'hagi deixat alguna cosa que parléssim dissabte i no hagi incorporat (no sé qui es va quedar el full aquell on l'Aleix anava escrivint les idees o si tot el que has publicat avui [Saez] es correspon a aquell full). En tot cas, ja em corregireu.
També he de dir sobre allò que els usuaris puguin editar el seu perfil i socialitzar etc. no ho he tingut en compte (potser ho haurem de parlar a la propera reunió si es vol incorporar des del principi "a lo grande" o amb el que he posat, ja tenim per començar).
Tampoc he afegit res sobre trofeus ni punts, en tot cas ja ho afegiríem quan tinguem clar com ho farem.



Aclariments:
- A CONCURSOS he posat l'atribut booleà Validat. Vàrem dir que al principi introduiríem nosaltres però com que el futur no està clar el poso i ja farem que quan els inserim directament posi aquest valor a 1.
- A CONCURSOS els atributs Text curt i Text Llarg fan referència, el primer al text que apareixerà des de la pàgina principal (un resum tipus el que surt a Asco de Vida a cada post de la pàgina principal) i el segon a una explicació més detallada que apareixerà quan cliquem a la fitxa del concurs.

Apa, si cal comentar alguna cosa més a fons ja em diràs/eu king

_________________
So you say you learn faster by jumping in and you'll learn by just making your dream 3D MMORPG and you'll just pick up what you need as you need it Well here's a guide to help you along your way:
-Go to your local market
-Buy a whole fish. Salmon or Cod is recommended but even a Catfish will do
-Go home and turn on your computer
-Start up your IDE of choice
-Now take that fish you bought and smack yourself in the head with it
Repeat step 5 until thought of "jumping in" leaves your mind
avatar
miki
Admin

Mensajes : 53
Fecha de inscripción : 12/06/2009
Edad : 31
Localización : Barcelona de les Abadesses

Ver perfil de usuario

Volver arriba Ir abajo

Re: Base de dades

Mensaje  JS el Lun Mar 15, 2010 10:59 pm

Retocs acordats amb el rei de la casa king :

Usuari: afegir l'atribut "id_idioma".
Usuaris_ban: treure l'atribut "nick".
Concurs: treure l'atribut "text_curt"; afegir l'atribut "data_registre";
Concurs i Forum_fil/_tema/_post: canviar el nom de l'atribut "denunciable"/"censurable" per "denuncies"; afegir l'atribut "censurat".
Nova entitat Idioma: té els atributs "id" i "nom".


Última edición por JS el Mar Mar 16, 2010 3:46 am, editado 1 vez

_________________
1f u c4n r34d th15 u r34lly n33d t0 g37 l41d

Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning.

PS: I'm not anti-social, I'm just not user friendly...
avatar
JS

Mensajes : 178
Fecha de inscripción : 12/06/2009

Ver perfil de usuario

Volver arriba Ir abajo

Re: Base de dades

Mensaje  aleix.caballeria el Mar Mar 16, 2010 12:15 am

No em posaré amb temes de programació perquè ja sabeu que no és l'ho meu. Només comentar un parell de coses, arran del que acaba de dir en Joan. A veure si a la pròxima reunió ho acabem de concretar.

1- El que diu en Miki de versió curta i versió llarga a mi em sembla perfecte, de fet és la idea que tenia i és, també, el funcionament habitual dels blogs. Una breu descripció del concurs. és a dir, quan l'administrador del concurs penji la informació hi ha d'haver una casella d'informació bàsica, a part de tots el paràmetres de rigor

2- El tema idioma ja fa dies que hi dono voltes. Està clar que la web hauria d'estar amb català, però que tinguem el .cat no vol dir que ens haguem de tancar a altres mercarts, i tenir una versió amb castellà o fer algun tripijoc raro per arribar a tot espanya no estaria malament. Tot es parlar-ne

aleix.caballeria

Mensajes : 5
Fecha de inscripción : 25/02/2010

Ver perfil de usuario

Volver arriba Ir abajo

Re: Base de dades

Mensaje  JS el Mar Mar 16, 2010 1:07 am

Aquí el dump de la base de dades "concursos_db", amb un cotejamiento/collate = "utf8_unicode_ci":

Código:

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

--
-- Base de datos: `concursos_db`
--

-- --------------------------------------------------------
--
-- Estructura de tabla para la tabla `concurs`
--

CREATE TABLE `concurs` (
  `id_concurs` int(11) NOT NULL auto_increment,
  `id_usuari` int(11) NOT NULL,
  `id_concurs_tipus` int(11) NOT NULL,
  `categoria` int(11) NOT NULL,
  `nom_concurs` varchar(32) collate utf8_unicode_ci NOT NULL,
  `nom_organitzador` varchar(32) collate utf8_unicode_ci default NULL COMMENT 'Opcional. Si s''omple, es mostra com a publicador enlloc del nick de l''usuari.',
  `resum` varchar(256) collate utf8_unicode_ci NOT NULL, 
  `fitxa` varchar(1024) collate utf8_unicode_ci NOT NULL,
  `premi` varchar(128) collate utf8_unicode_ci NOT NULL,
  `validat` tinyint(1) NOT NULL default '0',
  `data_registre` datetime NOT NULL,
  `data_inici` datetime default NULL,
  `data_fi_presentacio` datetime default NULL,
  `data_fi_concurs` datetime default NULL,
  `denuncies` int(11) NOT NULL default '0',
  `censurat` tinyint(1) NOT NULL default '0',
  `web` varchar(64) collate utf8_unicode_ci default NULL,
  PRIMARY KEY  (`id_concurs`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1 ;

-- --------------------------------------------------------
--
-- Estructura de tabla para la tabla `concurs_comentari`
--

CREATE TABLE `concurs_comentari` (
  `id_comentari` int(11) NOT NULL auto_increment,
  `id_usuari` int(11) NOT NULL,
  `id_concurs` int(11) NOT NULL,
  `comentari` varchar(256) collate utf8_unicode_ci NOT NULL,
  PRIMARY KEY  (`id_comentari`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1 ;

-- --------------------------------------------------------
--
-- Estructura de tabla para la tabla `concurs_tipus`
--

CREATE TABLE `concurs_tipus` (
  `id_concurs_tipus` int(11) NOT NULL auto_increment,
  `nom` varchar(16) collate utf8_unicode_ci NOT NULL,
  PRIMARY KEY  (`id_concurs_tipus`),
  UNIQUE KEY `nom` (`nom`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1 ;

-- --------------------------------------------------------
--
-- Estructura de tabla para la tabla `forum_fil`
--

CREATE TABLE `forum_fil` (
  `id_fil` int(11) NOT NULL auto_increment,
  `id_concurs` int(11) NOT NULL COMMENT 'Si val -1 sabem que el fil pertany al fòrum principal',
  `id_usuari` int(11) NOT NULL,
  `titol` varchar(32) collate utf8_unicode_ci NOT NULL,
  `descripcio` varchar(128) collate utf8_unicode_ci default NULL,
  `bloquejat` tinyint(1) NOT NULL default '0',
  `denuncies` int(11) NOT NULL default '0',
  `censurat` tinyint(1) NOT NULL default '0',
  PRIMARY KEY  (`id_fil`),
  UNIQUE KEY `id_concurs` (`id_concurs`,`titol`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1 ;

-- --------------------------------------------------------
--
-- Estructura de tabla para la tabla `forum_post`
--

CREATE TABLE `forum_post` (
  `id_post` int(11) NOT NULL auto_increment,
  `id_tema` int(11) NOT NULL,
  `id_usuari` int(11) NOT NULL,
  `titol` varchar(64) collate utf8_unicode_ci NOT NULL COMMENT 'Per defecte, el títol del tema',
  `contingut` varchar(512) collate utf8_unicode_ci NOT NULL,
  `data` datetime NOT NULL,
  `bloquejat` tinyint(1) NOT NULL default '0',
  `denuncies` int(11) NOT NULL default '0',
  `censurat` tinyint(1) NOT NULL default '0',
  `num_edits` int(11) NOT NULL default '0',
  PRIMARY KEY  (`id_post`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1 ;

-- --------------------------------------------------------
--
-- Estructura de tabla para la tabla `forum_tema`
--

CREATE TABLE `forum_tema` (
  `id_tema` int(11) NOT NULL auto_increment,
  `id_fil` int(11) NOT NULL,
  `id_usuari` int(11) NOT NULL,
  `titol` varchar(64) collate utf8_unicode_ci NOT NULL COMMENT 'Equival al títol del primer post',
  `bloquejat` tinyint(1) NOT NULL default '0',
  `denuncies` int(11) NOT NULL default '0',
  `censurat` tinyint(1) NOT NULL default '0',
  PRIMARY KEY  (`id_tema`),
  UNIQUE KEY `id_fil` (`id_fil`,`titol`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1 ;

-- --------------------------------------------------------
--
-- Estructura de tabla para la tabla `idioma`
--

CREATE TABLE `idioma` (
  `id_idioma` int(11) NOT NULL auto_increment,
  `nom` varchar(16) collate utf8_unicode_ci NOT NULL,
  PRIMARY KEY  (`id_idioma`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=2 ;

--
-- Volcar la base de datos para la tabla `idioma`
--

INSERT INTO `idioma` (`id_idioma`, `nom`) VALUES
(1, 'català');

-- --------------------------------------------------------
--
-- Estructura de tabla para la tabla `log`
--

CREATE TABLE `log` (
  `id_log` int(11) NOT NULL auto_increment,
  `data` datetime NOT NULL,
  `succes` varchar(64) collate utf8_unicode_ci NOT NULL,
  PRIMARY KEY  (`id_log`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1 ;

-- --------------------------------------------------------
--
-- Estructura de tabla para la tabla `usuari`
--

CREATE TABLE `usuari` (
  `id_usuari` int(11) NOT NULL auto_increment,
  `id_idioma` int(11) NOT NULL,
  `nick` varchar(12) collate utf8_unicode_ci NOT NULL,
  `contrassenya` varchar(32) collate utf8_unicode_ci NOT NULL,
  `rang` tinyint(2) NOT NULL,
  `data_validacio` date NOT NULL,
  `mail` varchar(64) collate utf8_unicode_ci NOT NULL,
  `nom` varchar(32) collate utf8_unicode_ci default NULL,
  `web` varchar(64) collate utf8_unicode_ci default NULL,
  `adreca` varchar(128) collate utf8_unicode_ci default NULL,
  `cp` varchar(8) collate utf8_unicode_ci default NULL,
  `data_naixement` date default NULL,
  `sexe` enum('m','f') collate utf8_unicode_ci default NULL,
  `ciutat` varchar(32) collate utf8_unicode_ci default NULL,
  `signatura` varchar(128) collate utf8_unicode_ci default NULL,
  `interessos` varchar(256) collate utf8_unicode_ci default NULL,
  `ocupacio` varchar(256) collate utf8_unicode_ci default NULL,
  `num_posts` int(11) NOT NULL default '0',
  `avatar` varchar(16) collate utf8_unicode_ci NOT NULL default 'default.png',
  PRIMARY KEY  (`id_usuari`),
  UNIQUE KEY `nick` (`nick`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1 ;

-- -------------------------------------------------------
--
-- Estructura de tabla para la tabla `usuari_ban`
--

CREATE TABLE `usuari_ban` (
  `id_usuari` int(11) NOT NULL default '0',
  `mac` varchar(17) collate utf8_unicode_ci NOT NULL,
  PRIMARY KEY  (`id_usuari`,`mac`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

-- --------------------------------------------------------
--
-- Estructura de tabla para la tabla `usuari_concurs_puntuacio`
--

CREATE TABLE `usuari_concurs_puntuacio` (
  `id_usuari` int(11) NOT NULL,
  `id_concurs` int(11) NOT NULL,
  `puntuacio` tinyint(4) NOT NULL,
  PRIMARY KEY  (`id_usuari`,`id_concurs`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

-- --------------------------------------------------------
--
-- Estructura de tabla para la tabla `usuari_concurs_seguiment`
--

CREATE TABLE `usuari_concurs_seguiment` (
  `id_usuari` int(11) NOT NULL,
  `id_concurs` int(11) NOT NULL,
  PRIMARY KEY  (`id_usuari`,`id_concurs`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

-- --------------------------------------------------------
--
-- Estructura de tabla para la tabla `usuari_concurs_tipus_preferencies`
--

CREATE TABLE `usuari_concurs_tipus_preferencies` (
  `id_usuari` int(11) NOT NULL,
  `id_concurs_tipus` int(11) NOT NULL,
  PRIMARY KEY  (`id_usuari`,`id_concurs_tipus`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

-- --------------------------------------------------------
--
-- Estructura de tabla para la tabla `usuari_tema_llegit`
--

CREATE TABLE `usuari_tema_llegit` (
  `id_usuari` int(11) NOT NULL,
  `id_tema` int(11) NOT NULL,
  PRIMARY KEY  (`id_usuari`,`id_tema`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;


Última edición por JS el Lun Abr 05, 2010 2:30 am, editado 6 veces

_________________
1f u c4n r34d th15 u r34lly n33d t0 g37 l41d

Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning.

PS: I'm not anti-social, I'm just not user friendly...
avatar
JS

Mensajes : 178
Fecha de inscripción : 12/06/2009

Ver perfil de usuario

Volver arriba Ir abajo

Re: Base de dades

Mensaje  JS el Mar Mar 16, 2010 1:37 am

Del tema del text llarg i curt, tots 3 estem d'acord en que hi ha d'haver una "preview". On no sabem ben bé per on tirar en Miky i jo és si cal demanar 2 textos diferents al publicador o bé fer quelcom com ara mostrar "les primeres N paraules + punts supensius". A nivell de programació pràcticament no ens implica res però ara ho havíem de deixar més o menys definit, ni que fos de forma provisional, per poder fer l'estructura de la base de dades (que la podem modificar sense problemes). Vosaltes direu, si creieu que serà incòmode per el publicador haver de fer "la feinada" de pensar i escriure 2 texts enlloc d'un, fem el truquillu de tallar el text llarg... si no, podem demanar i desar 2 textos separats. Al vostre gust, a mi tan m'és.

Pel que fa a l'idioma no pateixis, Aleix. De moment, per raons de simplicitat, de temps i en vistes de que començarem a captar "clients" per aquí la vora, ho farem tot en català. Tot i això, ja ho estem deixant obert per tal que afegir traduccions a qualsevol idioma sigui tan facil com traduir les frases dins d'un fitxer.



Ara a l'estructura implementada. He introduït alguns canvis:

- comentari_concurs: no he inclòs el camp "nick" perquè no sabia ben bé què hi feia i m'ha semblat redundant. Si l'he cardat al pal fot'hm una escupinyada.
- He afegit la taula "concurs_categoria" amb les 3 entrades ja afegides, "public", "privat" i "propi". Conseqüentment, ara la categoria dins de concurs apunta a una id_categoria.
- He introduït el primer i, ara per ara, únic idioma a la taula "idioma": "català".
- He afegit una taula "log" per els logs de la web amb tres camps: "id_log", "data" i "succes".
- He afegit la taula de relació "usuari_tema_llegit" que crea una relació quan algú accedeix a un tema. Quan algú posteja dins del tema, totes les relacions entre els usuaris i el tema en qüestió s'hauran d'esborrar.


De moment això és, crec, tot. Per altra banda, he pensat que, per desar el contingut del fòrum general, podem fer que els seus fils apuntin a la "id_forum" -1.


Si hi ha res a modificar ja em direu. S@s fora queen

_________________
1f u c4n r34d th15 u r34lly n33d t0 g37 l41d

Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning.

PS: I'm not anti-social, I'm just not user friendly...
avatar
JS

Mensajes : 178
Fecha de inscripción : 12/06/2009

Ver perfil de usuario

Volver arriba Ir abajo

Re: Base de dades

Mensaje  aleix.caballeria el Mar Mar 16, 2010 2:07 am

En quan a l'ho del text llarg i curt no sé quina seria la millor opció, tot i que si que tinc alguna preferència.

Si tenim en compte que el "formulari" per rellenar el concurs contarà de varis quadres, no veig descabellat posar-n'hi un que sigui "resum", "sinopsis" o "idea general". A més a més, tal hi com dic, ha de ser una espècia de fitxa, i no un únic text, així que el que veig més lògic és posar un quadre que serveixi per definir el concurs amb poques paraules. Un cop dintre, ja veurem tots els detalls (premis, dates, normes...). Crec que és el més lògic i el més pràctic. A part de que d'aquesta manera tot tindrà la mateixa forma i estructura

aleix.caballeria

Mensajes : 5
Fecha de inscripción : 25/02/2010

Ver perfil de usuario

Volver arriba Ir abajo

Re: Base de dades

Mensaje  JS el Mar Mar 16, 2010 2:11 am

Perfecte, ja magrada... De fet millor, ja que a saber com estructuren el text intern de la fitxa i si fem això de tallar, podríem tenir resums molt poc significatius.

De moment introdueixo els canvis pertinents al codi de sobre.

_________________
1f u c4n r34d th15 u r34lly n33d t0 g37 l41d

Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning.

PS: I'm not anti-social, I'm just not user friendly...
avatar
JS

Mensajes : 178
Fecha de inscripción : 12/06/2009

Ver perfil de usuario

Volver arriba Ir abajo

Re: Base de dades

Mensaje  JS el Mar Mar 16, 2010 5:00 am

El següent pas i ja per deixar pràcticament finiquitat el tema de la base de dades, és definir els usuaris de la mateixa.

Proposta:

  • concursos_admin: usuari administrador. Ha de tenir tots les permisos habituals sobre les dades de totes les taules excepte de la taula log, que té un usuari específic per manipular-la.

  • concursos_backups: usuari que faci el dump, ja sigui automàtic des de sistema o bé manual des de la web. El permís d'inserció al log només és necessari si el dump es fa des d'un script al cron (per no haver de tenir desprotegit el password de l'usuari concurosos_log, amb més privilegis i utilitzat des de la web, i per no haver d'obrir dues connexions a la base de dades).

  • concursos_log: usuari encarregat d'escriure als logs de la web. Donem permisos de select i delete per més endevant poder crear, si interessa, una aplicació de gestió de logs.

  • concursos_netejaUsuaris: usuari que faci la neteja d'usuaris no validats, ja sigui des de sistema o bé manual des de la web. El permís d'inserció al log només és necessari si el dump es fa des d'un script al cron (per no haver de tenir desprotegit el password de l'usuari concurosos_log, amb més privilegis i utilitzat des de la web, i per no haver d'obrir dues connexions a la base de dades).

  • concursos_usuari: usuari dels usuaris de la web. Poden accedir a gran part de les dades públiques i escriure, modificar i esborrar algunes d'elles.

  • concursos_web: usuari encarregat de llegir les dades de la base de dades i extreure'n la informació per generar el contingut de la web.



Código:
-- -
-- concursos_admin
-- -
GRANT select,insert,update,delete ON `concursos_db`.`usuari` TO 'con_admin'@'localhost' IDENTIFIED BY 'At%wjI7vf8';
GRANT select,insert,update,delete ON `concursos_db`.`usuari_concurs_puntuacio` TO 'con_admin'@'localhost';
GRANT select,insert,delete ON `concursos_db`.`usuari_concurs_seguiment` TO 'con_admin'@'localhost';
GRANT select,insert,update,delete ON `concursos_db`.`usuari_ban` TO 'con_admin'@'localhost';
GRANT select,insert,delete ON `concursos_db`.`usuari_concurs_tipus_preferencies` TO 'con_admin'@'localhost';
GRANT select,insert,delete ON `concursos_db`.`usuari_tema_llegit` TO 'con_admin'@'localhost';
GRANT select,insert,update,delete ON `concursos_db`.`concurs` TO 'con_admin'@'localhost';
GRANT select,insert,update,delete ON `concursos_db`.`concurs_comentari` TO 'con_admin'@'localhost';
GRANT select,insert,update,delete ON `concursos_db`.`concurs_tipus` TO 'con_admin'@'localhost';
GRANT select,insert,update,delete ON `concursos_db`.`forum_fil` TO 'con_admin'@'localhost';
GRANT select,insert,update,delete ON `concursos_db`.`forum_tema` TO 'con_admin'@'localhost';
GRANT select,insert,update,delete ON `concursos_db`.`forum_post` TO 'con_admin'@'localhost';
GRANT select,insert,update,delete ON `concursos_db`.`idioma` TO 'con_admin'@'localhost';
--
-- -
-- concursos_backups
-- -
GRANT select,lock tables ON `concursos_db`.* TO 'con_backups'@'localhost' IDENTIFIED BY 'Fy3gf874G%';
GRANT insert ON `concursos_db`.`log` TO 'con_backups'@'localhost';
--
-- -
-- concursos_log
-- -
GRANT select,insert,delete ON `concursos_db`.`log` TO 'con_log'@'localhost' IDENTIFIED BY 'd9tKE%f72l';
--
-- -
-- concursos_usuari
-- -
GRANT select,insert,update,delete ON `concursos_db`.`usuari` TO 'con_usuari'@'localhost' IDENTIFIED BY 'p39%Hg5uGQ';
GRANT select,insert,update ON `concursos_db`.`usuari_concurs_puntuacio` TO 'con_usuari'@'localhost';
GRANT select,insert,delete ON `concursos_db`.`usuari_concurs_seguiment` TO 'con_usuari'@'localhost';
GRANT select,insert,delete ON `concursos_db`.`usuari_concurs_tipus_preferencies` TO 'con_usuari'@'localhost';
GRANT select,insert,delete ON `concursos_db`.`usuari_tema_llegit` TO 'con_usuari'@'localhost';
GRANT select,insert,update,delete ON `concursos_db`.`concurs` TO 'con_usuari'@'localhost';
GRANT select,insert,update,delete ON `concursos_db`.`concurs_comentari` TO 'con_usuari'@'localhost';
GRANT select,insert,update,delete ON `concursos_db`.`forum_fil` TO 'con_usuari'@'localhost';
GRANT select,insert,update,delete ON `concursos_db`.`forum_tema` TO 'con_usuari'@'localhost';
GRANT select,insert,update,delete ON `concursos_db`.`forum_post` TO 'con_usuari'@'localhost';
--
-- -
-- concursos_netejaUsuaris
-- -
GRANT select,delete ON `concursos_db`.`usuari` TO 'con_netejaUsrs'@'localhost' IDENTIFIED BY '3%t4GP4x8s';
GRANT select,delete ON `concursos_db`.`usuari_concurs_puntuacio` TO 'con_netejaUsrs'@'localhost';
GRANT select,delete ON `concursos_db`.`usuari_concurs_seguiment` TO 'con_netejaUsrs'@'localhost';
GRANT select,delete ON `concursos_db`.`usuari_concurs_tipus_preferencies` TO 'con_netejaUsrs'@'localhost';
GRANT select,delete ON `concursos_db`.`usuari_tema_llegit` TO 'con_netejaUsrs'@'localhost';
GRANT select,delete ON `concursos_db`.`concurs` TO 'con_netejaUsrs'@'localhost';
GRANT select,delete ON `concursos_db`.`concurs_comentari` TO 'con_netejaUsrs'@'localhost';
GRANT select,delete ON `concursos_db`.`forum_fil` TO 'con_netejaUsrs'@'localhost';
GRANT select,delete ON `concursos_db`.`forum_tema` TO 'con_netejaUsrs'@'localhost';
GRANT select,delete ON `concursos_db`.`forum_post` TO 'con_netejaUsrs'@'localhost';
GRANT insert ON `concursos_db`.`log` TO 'con_netejaUsrs'@'localhost';
--
-- -
-- concursos_web
-- -
GRANT select ON `concursos_db`.* TO 'con_web'@'localhost' IDENTIFIED BY 'pDs04n8W%X';
--
--
FLUSH PRIVILEGES;


Última edición por JS el Mar Mar 16, 2010 6:26 pm, editado 5 veces

_________________
1f u c4n r34d th15 u r34lly n33d t0 g37 l41d

Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning.

PS: I'm not anti-social, I'm just not user friendly...
avatar
JS

Mensajes : 178
Fecha de inscripción : 12/06/2009

Ver perfil de usuario

Volver arriba Ir abajo

Re: Base de dades

Mensaje  miki el Mar Mar 16, 2010 1:54 pm

- l'atribut Nick a comentaris_concurs era per facilitar les consultes sql (soc molt mandròs xD) però és igual, és prescindible.
- A la taula concurs_categoria no li acabo de veure el què: els atributs són booleans o què? ho dic perquè jo l'havia pensat com un camp integer i que prengui valors 0,1 o 2 depenent de la categoria. Si per un casual sorgissin més categories tenim marge de sencers però crear una taula només per això... (potser se m'escapa).
- El mateix em passa amb la taula d'idiomes que no sé si es estrictament necessaria. No afecta a tots els continguts com vam parlar ahir per telefon. Com a molt seria una preferència de l'usuari i no veig perquè no podria ser un camp més en la taula Usuari en tot cas (?).

Respecte a tota la resta ja em sembla bé Razz

_________________
So you say you learn faster by jumping in and you'll learn by just making your dream 3D MMORPG and you'll just pick up what you need as you need it Well here's a guide to help you along your way:
-Go to your local market
-Buy a whole fish. Salmon or Cod is recommended but even a Catfish will do
-Go home and turn on your computer
-Start up your IDE of choice
-Now take that fish you bought and smack yourself in the head with it
Repeat step 5 until thought of "jumping in" leaves your mind
avatar
miki
Admin

Mensajes : 53
Fecha de inscripción : 12/06/2009
Edad : 31
Localización : Barcelona de les Abadesses

Ver perfil de usuario

Volver arriba Ir abajo

Re: Base de dades

Mensaje  JS el Mar Mar 16, 2010 3:13 pm

Són varchars i té les tres categories afegides. Igualment, en vistes que el seu nom és traduïble, que les traduccions no van per la base de dades, i que la taula no s'ha de modificar, en teoria, millor ho poso amb un camp enter a la taula concurs. Igualment, si més endevant volem modificar les categories, haurem de fer uns quants canvis en la programació de la web (selects, traduccions, mostra dels noms de les categories en els diferents llocs on surti...).

Pel que fa a la taula d'idiomes, però, els noms dels idiomes no s'han de traduir, la taula pot crèixer força i potser més endavant necessitem les referències si volem fer que alguns postejats tinguin traduccions (com ara els concursos propis). Jo ho deixaria en taula.

_________________
1f u c4n r34d th15 u r34lly n33d t0 g37 l41d

Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning.

PS: I'm not anti-social, I'm just not user friendly...
avatar
JS

Mensajes : 178
Fecha de inscripción : 12/06/2009

Ver perfil de usuario

Volver arriba Ir abajo

Re: Base de dades

Mensaje  miki el Mar Mar 16, 2010 4:00 pm

oook, em sembla perfecte Smile

_________________
So you say you learn faster by jumping in and you'll learn by just making your dream 3D MMORPG and you'll just pick up what you need as you need it Well here's a guide to help you along your way:
-Go to your local market
-Buy a whole fish. Salmon or Cod is recommended but even a Catfish will do
-Go home and turn on your computer
-Start up your IDE of choice
-Now take that fish you bought and smack yourself in the head with it
Repeat step 5 until thought of "jumping in" leaves your mind
avatar
miki
Admin

Mensajes : 53
Fecha de inscripción : 12/06/2009
Edad : 31
Localización : Barcelona de les Abadesses

Ver perfil de usuario

Volver arriba Ir abajo

Re: Base de dades

Mensaje  JS el Mar Mar 16, 2010 6:37 pm

Tot està llest per importar. Espero que no generi errors (la part de l'estructura no la he provat d'importar).

_________________
1f u c4n r34d th15 u r34lly n33d t0 g37 l41d

Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning.

PS: I'm not anti-social, I'm just not user friendly...
avatar
JS

Mensajes : 178
Fecha de inscripción : 12/06/2009

Ver perfil de usuario

Volver arriba Ir abajo

Re: Base de dades

Mensaje  JS el Lun Mar 29, 2010 1:44 pm

S'ha afegit 2 camps a la taula usuaris: adreca (varchar 128) i cp (varchar 8 ).
S'ha modificat el camp contrassenya de la mateixa taula per poder-hi desar els paswords encriptats en md5.


Diràs, pq cp (varchar 8 )? Doncs perquè els CPs més llargs del món són els argentins, de 8 caràcters. Són folls, aquests argentins.

_________________
1f u c4n r34d th15 u r34lly n33d t0 g37 l41d

Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning.

PS: I'm not anti-social, I'm just not user friendly...
avatar
JS

Mensajes : 178
Fecha de inscripción : 12/06/2009

Ver perfil de usuario

Volver arriba Ir abajo

Re: Base de dades

Mensaje  Contenido patrocinado


Contenido patrocinado


Volver arriba Ir abajo

Volver arriba

- Temas similares

 
Permisos de este foro:
No puedes responder a temas en este foro.