<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Stardust XS &#187; Programación</title>
	<atom:link href="http://www.stardustxs.com/category/programacion/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.stardustxs.com</link>
	<description>Web 2.0 en español</description>
	<lastBuildDate>Thu, 12 Jun 2008 17:34:53 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Ventajas de usar CSS</title>
		<link>http://www.stardustxs.com/2008/03/05/ventajas-de-usar-css/</link>
		<comments>http://www.stardustxs.com/2008/03/05/ventajas-de-usar-css/#comments</comments>
		<pubDate>Wed, 05 Mar 2008 19:01:07 +0000</pubDate>
		<dc:creator>Cristian</dc:creator>
				<category><![CDATA[Diseño]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[hojas de estilo]]></category>
		<category><![CDATA[plantilla]]></category>
		<category><![CDATA[template]]></category>

		<guid isPermaLink="false">http://www.stardustxs.com/2008/03/05/ventajas-de-usar-css/</guid>
		<description><![CDATA[A la hora de crear un sitio web 2.0 tenemos que tener muchas cosas en cuenta, y algo muy importante, importantísimo, es el diseño de la misma.
Ahora bien, ¿cómo sé efectuar el diseño de las aplicaciones web 2.0?
Bueno, yo creo que los diseños deberían hacerse siempre con CSS por varios motivos. ¿Cuáles? Bueno, lean el [...]]]></description>
			<content:encoded><![CDATA[<p>A la hora de crear un sitio web 2.0 tenemos que tener muchas cosas en cuenta, y algo muy importante, importantísimo, es el diseño de la misma.</p>
<p>Ahora bien, ¿cómo sé efectuar el diseño de las aplicaciones web 2.0?</p>
<p>Bueno, yo creo que los diseños deberían hacerse siempre con CSS por varios motivos. ¿Cuáles? Bueno, lean el post a continuación que creo que va a darnos una idea de cuales son las ventajas de utilizar CSS en nuestros diseños. Obviamente, empezaremos por una introducción al tema.</p>
<p><span id="more-239"></span></p>
<h2>¿Qué son los CSS?</h2>
<p>Las Hojas de Estilo (o <strong>CSS</strong>, por Cascading StyleSheets) son un mecanismo que permiten aplicar formato a los documentos escritos en HTML (y en otros lenguajes estructurados, como XML) separando el contenido de las páginas de su apariencia. Para el diseñador, esto significa que la información estará contenida en la página HTML, pero este archivo no debe definir <strong>cómo</strong> será visualizada esa información. Las indicaciones acerca de la composición visual del documento estarán especificadas en el archivo de la CSS.</p>
<h2>¿Cómo Funcionan los CSS?</h2>
<p>Las Hoja de Estilo no utilizan el archivo de la página Web para especificar el formato de la página (en realidad, a veces pueden hacerlo, pero no es recomendable hacerlo de esa manera). En su lugar, usan un archivo de texto puro con extensión &#8220;.CSS&#8221; que luego se vincula a la página.</p>
<p>Este archivo contiene <em>reglas</em> que constan de un <em>selector</em> (en este ejemplo, <strong>H1</strong>) y una o más <em>declaraciones</em> (en el ejemplo tenemos cuatro declaraciones). Cada declaración tiene dos partes: una <em>propiedad</em> (por ejemplo, <strong>FONT SIZE</strong>) y un <em>valor</em> (en este caso, <strong>19pt</strong>). Estas reglas son las que determinan cómo deberá mostrarse la página.</p>
<p>Nuevamente, si quisiéramos componer los encabezados H1 con tipografía Arial, de 19 puntos, en color azul y alineación central, el archivo CSS debería contener el siguiente texto:</p>
<blockquote>
<pre>H1 {

   font-family: Arial, Sans-serif;

   font-size: 19pt;

   color: #0000FF;

   text-align: center;

}</pre>
</blockquote>
<p>Luego, en cada página de nuestro sitio agregamos un link a la Hoja de Estilo:</p>
<blockquote>
<pre>&lt;LINK REL="stylesheet" href="hoja_de_estilo.css" TYPE="text/css"&gt;</pre>
</blockquote>
<p>El elemento LINK especifica:</p>
<ul type="disc">
<li>el tipo de vínculo: a una hoja      de estilo (&#8221;stylesheet&#8221;)</li>
<li>la ubicación de la hoja de      estilo a través del atributo &#8220;href&#8221;</li>
<li>el tipo de hoja de estilo que      se vincula: &#8220;text/css&#8221;</li>
</ul>
<p>Ahora, <strong>todos</strong> los encabezado H1 de las páginas que contienen la referencia al archivo de la CSS tendrán el aspecto que hemos definido.</p>
<h2>10 razones (o ventajas) para utilizar CSS</h2>
<h3>1.- Separación del contenido y presentación.</h3>
<p>Las hojas de estilo generalmente se encuentran en archivos separados del código principal (<a href="http://www.maestrosdelweb.com/editorial/nivelhtml/">html</a>, por ejemplo). Esto nos va a permitir que en un equipo de trabajo, programador y diseñador puedan realizar sus tareas de forma independiente aunque paralela, sin correr el riesgo de que haya interferencias entre ambos, y ello no alterará el resultado final.</p>
<h3>2.- Flexibilidad.</h3>
<p>Podríamos comparar las hojas de estilo con la ropa que guardamos en nuestros cajones. Nosotros somos los mismos, pero dependiendo de la temporada variamos nuestra apariencia.</p>
<p>En el caso de las hojas de estilo sucede lo mismo: podemos cambiar en cualquier momento alguna parte o la totalidad del diseño de nuestras páginas con sólo modificar nuestra hoja de estilo, sin que ello suponga modificar el contenido.</p>
<h3>3.- Unificación del diseño de las páginas del sitio.</h3>
<p>Un sitio web, ya sea dinámico o estático, suele estar formado por unas cuantas páginas. Mantener una misma apariencia se puede volver una tarea pesada y tediosa si tenemos que copiar y pegar código cada vez que creemos una página nueva, o que deseemos modificar una misma cosa en todas.</p>
<p>Enlazando a cada una de nuestras páginas nuestras hojas de estilo, agilizamos este proceso y minimizamos el trabajo.</p>
<h3>4.- Optimización de los tiempos de carga y de tráfico en el servidor.</h3>
<p>Al haber dividido contenido y apariencia obtenemos archivos más ligeros, y esto nos reporta dos beneficios: por un lado, reducimos notablemente los tiempos de carga del sitio en el navegador. A esto debemos unir la capacidad de éste para mantener nuestra hoja de estilo en caché.</p>
<p>Por otro lado, reducimos el volumen de tráfico de nuestro servidor, que siempre es de agradecer, tanto si disfrutamos de servicios gratuitos en que solemos tener cuotas muy reducidas, como si pagamos por tener alojamiento propio.</p>
<h3>5.- Precisión o elasticidad.</h3>
<p>Desde el momento en que usemos <a href="http://www.maestrosdelweb.com/editorial/introcss/">CSS</a>, el tamaño y posicionamiento de los elementos que formen nuestras páginas podrá ser exacto. Podremos indicarle al navegador en qué píxel debe colocar ésta o aquélla imagen, o qué alto y ancho deberá mostrar.</p>
<p>Pero al mismo tiempo, podremos emplear medidas variables o relativas que nos permitan expandir el contenido hasta ocupar la totalidad de la ventana de navegación a nuestro antojo, o contraerla a sólo una parte de la misma, con independencia de la resolución de pantalla del usuario.</p>
<h3>6.- Accesibilidad y estructuración.</h3>
<p>La combinación de CSS y marcadores descriptivos va a posibilitar que nuestra página se vea correctamente con o sin hoja de estilos, puesto que en cualquier caso, la información se mantendrá estructurada y ordenada.</p>
<p>Esto supone que podrá ser accesible sin ningún tipo de problemas tanto por navegadores antiguos o sin soporte para CSS, como para personas con algún tipo discapacidad.</p>
<h3>7.- Limpieza del código fuente.</h3>
<p>Si escribimos una hoja de estilo independiente, el código fuente de nuestra web va a resultar menos farragoso y agilizaremos las tareas de localización de las líneas que busquemos.</p>
<h3>8.- Compatibilidad y continuidad.</h3>
<p>Las reglas establecidas por la especificación CSS-1 fijaron los estándares del diseño, y se mantienen y respetan en la CSS-2. Es de prever que en el nivel 3 sucederá lo mismo con respecto a su predecesor.</p>
<p>Pero lo realmente interesante es que los navegadores que no soporten CSS-3 no tendrán problemas a la hora de asimilar el contenido CSS puesto que siempre les quedará la compatibilidad de CSS-2, o la CSS-1 en su caso. La compatibilidad de las especificaciones CSS anteriores estará siempre garantizada.</p>
<h3>9.- Estandarización frente a especificaciones propietarias.</h3>
<p>La adopción de estándares por la W3C ofrece la ventaja de la compatibilidad del código entre los diferentes navegadores web. El uso de &#8220;soluciones propietarias&#8221;, como es el caso de muchas etiquetas o patrones usadas por Microsoft.</p>
<p>En su interpretación de lo que es y no es CSS, dificulta la creación de páginas web, porque supone tener que escribir dos códigos distintos para obtener un mismo resultado, en función del tipo de navegador que use el visitante.</p>
<p>El uso del estándar CSS de la W3C evitará visualizaciones incorrectas de nuestras páginas en distintos navegadores.</p>
<h3>10.- Permite la diferenciación de estilos para imprimir / visualizar en pantalla.</h3>
<p>El uso de CSS nos va a permitir también maquetar separadamente el contenido de nuestra web para ser mostrado en pantalla o para ser impreso.</p>
<p>Tengamos en cuenta que las necesidades y propiedades de un folio de papel y de un monitor nunca van a ser las mismas, y gracias a CSS podremos determinar cómo queremos que se imprima lo que mostramos en la pantalla, manteniendo siempre una apariencia limpia, ordenada y agradable visualmente.</p>
<p>Espero que estas pequeñas reflexiones hayan servido para animarte a dar el gran salto y vestir a tu web con un bonito traje CSS hecho a medida. Y si aún no te animas a usar CSS en tu sitio, te invitamos a conocer <a href="http://www.excesomedia.com/cssreinicia/">CSS Reinicia</a>, una iniciativa que busca que sitios web en nuestro idioma se reinventen gracias a esta tecnología.</p>
<hr /> <strong>Fuentes:</strong> <a href="http://www.maestrosdelweb.com/editorial/usarcss/">maestrosdelweb</a> | <a href="http://www.sidar.org/recur/desdi/mcss/manual/intro.php">sidar.org</a></p>
<img src="http://www.stardustxs.com/?ak_action=api_record_view&id=239&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.stardustxs.com/2008/03/05/ventajas-de-usar-css/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Esquema de etiquetas (tag schema)</title>
		<link>http://www.stardustxs.com/2008/03/04/esquema-de-etiquetas-tag-schema/</link>
		<comments>http://www.stardustxs.com/2008/03/04/esquema-de-etiquetas-tag-schema/#comments</comments>
		<pubDate>Tue, 04 Mar 2008 22:43:56 +0000</pubDate>
		<dc:creator>Cristian</dc:creator>
				<category><![CDATA[Programación]]></category>
		<category><![CDATA[base de datos]]></category>
		<category><![CDATA[datawarehouse]]></category>
		<category><![CDATA[esquema]]></category>
		<category><![CDATA[esquema de etiquetas]]></category>
		<category><![CDATA[etiqueta]]></category>
		<category><![CDATA[schema]]></category>
		<category><![CDATA[tag]]></category>
		<category><![CDATA[tag schema]]></category>
		<category><![CDATA[tags]]></category>

		<guid isPermaLink="false">http://www.stardustxs.com/2008/03/04/esquema-de-etiquetas-tag-schema/</guid>
		<description><![CDATA[Hablamos mucho sobre que es una etiqueta (un tag), que es una folcsonomía y varios temas relacionados. Ahora bien, si creo mi propia aplicación web 2.0 y quiero generar mi famosa nube de etiquetas (tag cloud), u obtener meta información relativa a dichas etiquetas, ¿cómo hago?
Bien, en el blog tagschema.com de Nitin Borwankar explica bastante [...]]]></description>
			<content:encoded><![CDATA[<p>Hablamos mucho sobre que es una etiqueta (un tag), que es una folcsonomía y varios temas relacionados. Ahora bien, si creo mi propia aplicación web 2.0 y quiero generar mi famosa nube de etiquetas (tag cloud), u obtener meta información relativa a dichas etiquetas, ¿cómo hago?</p>
<p>Bien, en el blog <a href="http://tagschema.com/">tagschema.com</a> de Nitin Borwankar explica bastante bien como hacerlo, y aquí voy a incluir un resumen traducido al castellano de lo que considero más importante de dicho blog.</p>
<p>He tenido la experiencia de hacer aplicaciones web 2.0 utilizando esquema de etiquetas, y es bastante sencillo de implementar si uno tiene los conceptos adecuados para hacerlo.</p>
<p><span id="more-233"></span></p>
<h2>La Web 2.0 necesita Datos 2.0</h2>
<p>Una de las principales características de muchas aplicaciones web 2.0 es que son folcsonomías, clasificando los contenidos por medio de palabras clave o &#8220;etiquetas&#8221; (tags) mnemotécnicas.</p>
<p>Normalmente estas aplicaciones a diferencia de las aplicaciones &#8220;1.0&#8243;, por llamarlas de alguna manera, relacionan a los usuarios con lo que denominaremos sus ítems (podrían ser bookmars, fotos, videos, música, o cualquier objeto de una aplicación). En las aplicaciones &#8220;2.0&#8243; no solo se relacionan los usuarios con sus ítems, sino que también se relacionan con las etiquetas que les ponen a sus ítems.</p>
<p>Los nuevos modelos de datos, ahora, deberán tener en cuenta una nueva dimensión a la hora de actuar, y esa nueva dimensión son las etiquetas. Para lograr eso de una forma eficiente se debe hacer una especie de datawarehousing. Ese datawarehousing en tiempo real son nuestros Datos 2.0, los datos que utilizaremos por medio de nuestro esquema de etiquetas.</p>
<p>Entonces, <strong>el esquema de etiquetas (o tags) representa un datawarehouse de datos etiquetados (o tabeados)</strong>, y esos serán nuestros Datos 2.0.</p>
<h2>Datos 2.0 a fondo</h2>
<p>Ahora que sabemos que un esquema de etiquetas (o esquema de tags) no es nada mas ni nada menos que un datawarehouse, para analizar estos esquemas de etiquetas vamos a tener que hacer un análisis de modelos multidimensionales.</p>
<p>Antes de interiorizarnos con profundidad en este tema vamos a darnos cuenta que para cualquier simple aplicación que utilice etiquetas <strong>vamos a necesitar tres dimensiones básicas: &#8220;Usuario&#8221;, &#8220;Etiqueta&#8221; y &#8220;Ítem&#8221;</strong>. A partir de esas tres dimensiones comenzaremos a hacer el análisis de un esquema de etiquetas.</p>
<p><strong>Con esas tres principales dimensiones se genera lo que en datawarehousing se conoce como &#8220;fact table&#8221;, y eso es una tabla donde se asocian y convergen las 3 dimensiones. En esa tabla tendremos la información de cada ocurrencia de un evento, como por ejemplo &#8220;el usuario X ha puesto la etiqueta Y al ítem Z&#8221;. Esta situación se da para todas las etiquetas Y que le incluye el usuario X a todos los objetos Z que posea.</strong></p>
<p>Entonces, si el usuario &#8220;pepe&#8221; utiliza las etiquetas &#8220;cine&#8221;, &#8220;música&#8221;, &#8220;literatura&#8221; y &#8220;ocio&#8221; de manera en la que a el le parece con algunos artículos de un sitio web que habla sobre hobbies, en un esquema de etiquetas podríamos llegar a encontrar las siguientes columnas en una &#8220;fact table&#8221;:</p>
<blockquote>
<pre>Usuario     Etiqueta        Ítem
----------------------------------------------------------------
'pepe'      'cine'          'http://algohobbies.com/articulo-1'
'pepe'      'cine'          'http://algohobbies.com/articulo-2'
'pepe'      'música'        'http://algohobbies.com/articulo-2'
'pepe'      'cine'          'http://algohobbies.com/articulo-3'
'pepe'      'literatura'    'http://algohobbies.com/articulo-3'
'pepe'      'ocio'          'http://algohobbies.com/articulo-4'</pre>
</blockquote>
<p>El usuario &#8220;juan&#8221; tendrá una cantidad similar de campos para todos sus objetos etiquetados, lo mismo para el usuario &#8220;laura&#8221;.</p>
<p><strong>Las &#8220;fact tables&#8221; son tablas de asociaciones de múltiple entrada, donde se asocian todas las dimensiones posibles en un solo lugar.</strong> Estas tablas permiten una gran cantidad de consultas interesantes para correr, con probablemente, una de las mejores escalabilidades.</p>
<h2>Creando un modelo de datos para navegar una folcsonomía</h2>
<p>Además de la unión de los Usuarios, Etiquetas e Ítems hay una cantidad de relaciones que, junto con la relación base, forman el modelo de datos 2.0. Exploremos estas relaciones y sus consecuencias para la arquitectura de los datos.</p>
<p>Los Usuarios tienen Ítems (URL&#8217;s, fotos, música, etc.), pero un Usuario puede existir en la base de datos sin poseer ningún Ítem, como por ejemplo luego de haberse registrado. Por el lado del Ítem, este terminara siendo incluido en la base de datos solamente si esta relacionado al menos a un usuario (el que lo haya cargado). Entonces, un Usuario tiene quizás-ninguno-pero-posiblemente-muchos Ítems, y un Ítem tiene al-menos-uno-y-posiblemente-muchos Usuarios.</p>
<p>Similarmente, un Ítem puede existir sin ninguna Etiqueta, pero una Etiqueta existe solamente para asignar un valor a un Ítem. Adicionalmente, un Usuario puede no haber etiquetado nada por lo cual no tener ninguna Etiqueta, pero una Etiqueta siempre va a ser asignada por un Usuario.</p>
<p>Teniendo en cuenta esas tres relaciones cíclicas obtenemos lo siguiente:</p>
<blockquote>
<pre>Usuario  (1-muchos)  &lt;---------&gt; (0-muchos)  Ítems
Etiqueta (0- muchos) &lt;---------&gt; (1- muchos) Ítems
Etiqueta (0- muchos) &lt;---------&gt; (1- muchos) Usuario</pre>
</blockquote>
<p>Transcribiendo eso para una mejor comprensión podemos obtener este hermoso diagrama:</p>
<p><!--[if gte vml 1]>                                                  <![endif]--></p>
<p style="text-align: center"><img src="http://www.stardustxs.com/wp-content/uploads/2008/03/tagschema11.png" alt="Esquema de Etiquetas (Tag Schema) - Logico" /></p>
<p><strong>Aquí podemos ver que hay relaciones muchos-a-muchos entre cada par de entidades. Este modelo que vemos aquí arriba es la representación de un modelo lógico de datos</strong>, que al pasarlo a un modelo físico de datos va a requerir algunas modificaciones debido a las relaciones de muchos-a-muchos.</p>
<p>La idea no es dar una clase sobre bases de datos, pero como una breve explicación, la forma estándar de representar las relaciones muchos-a-muchos es crear una tabla de relación en la base de datos, que asocie ambos campos por medio de sus identificadotes.</p>
<p>Por ejemplo si queremos almacenar los Ítems que ha guardado un Usuario, al mismo tiempo que queremos saber los Usuarios que poseen cierto Ítem de una forma eficiente, crearemos una tabla que se podría llamar UsuarioÍtem para resolver la relación de muchos-a-muchos entre esas dos entidades donde cada columna tendrá el identificador del Usuario y el identificador del Ítem. Con la misma lógica tendremos una tabla UsuarioEtiqueta y una tabla ÍtemEtiqueta.</p>
<p>Habiendo creado las tablas de relaciones, el modelo nos quedara similar al siguiente:</p>
<p><!--[if gte vml 1]>   <![endif]--></p>
<p style="text-align: center"><img src="http://www.stardustxs.com/wp-content/uploads/2008/03/tagschema2.png" alt="Esquema de Etiquetas (Tag Schema) - Fisico" /></p>
<p>Para completar nuestro modelo de datos, como vimos anteriormente, <strong>tenemos la famosa &#8220;fact table&#8221; donde se relacionan los Usuarios, Ítems y Etiquetas en una sola tabla</strong>, que puede ser representada de dicha manera:</p>
<p><!--[if gte vml 1]>   <![endif]--></p>
<p style="text-align: center"><img src="http://www.stardustxs.com/wp-content/uploads/2008/03/tagschema3.png" alt="Esquema de Etiquetas (Tag Schema) - “Fact Table”" /></p>
<p>Ahora bien, seguramente están pensando ¿todo esto para hacer una simple nube de etiquetas?</p>
<p>Bien, <strong>si estas pensando en hacer una arquitectura de una folcsonomía a gran escala va a ser necesario algo así</strong>, ya que en una primera instancia este modelo resuelve de forma muy simple las preguntas: &#8220;¿Cuáles son todos los Ítems de un Usuario?&#8221; O &#8220;¿Cuáles son todas las Etiquetas de este Ítem?&#8221;; pero yendo a un grado mayor de profundidad, nos podemos encontrar con preguntas como: &#8220;¿Cuáles son todos los Usuarios que tienen mas Ítems similares entre sí con otro Usuario?&#8221;. <strong>Usando este modelo, podemos responder muchas consultas sin hacer múltiples JOIN en una base de datos, y cuando hablamos de mas de 250.000.000 de columnas, es algo importante para la performance.</strong></p>
<p>Entonces, como nuestro modelo no puede evitar nunca tener nuestra &#8220;fact table&#8221; ya que mantiene la coherencia entre los Usuarios, Ítems y Etiquetas, combinando estos dos modelos de datos obtendremos lo que se podría denominar la base de <strong>nuestro modelo de datos 2.0</strong>, nuestro famoso esquema de etiquetas:</p>
<p style="text-align: center"><img src="http://www.stardustxs.com/wp-content/uploads/2008/03/tagschema4.png" alt="Esquema de Etiquetas (Tag Schema) - Final" /></p>
<h2>Relacionando datos en una folcsonomía</h2>
<p>Si bien SQL es un lenguaje perfectamente adecuado para hacer consultas de datos &#8220;tabulares&#8221;, no es particularmente elegante para representar las abstracciones que tenemos en mente a la hora de relacionar datos en una folcsonomía, como por ejemplo, relacionar Usuarios, Ítems o Etiquetas entre sí.</p>
<p>Vamos a usar una simple notación para hablar sobre las relaciones entre Usuario-Ítem-Etiqueta, para transformar momentáneamente SQL en un lenguaje un poco más descriptivo. Olvidémonos de SQL por un momento y vamos a seguir esta notación:</p>
<p>Las letras en minúscula &#8220;í&#8221;, &#8220;e&#8221; y &#8220;u&#8221; representaran a un &#8220;Ítem&#8221;, &#8220;Etiqueta&#8221; y &#8220;Usuario&#8221; respectivamente.</p>
<p>Las letras en mayúscula &#8220;Í&#8221;, &#8220;E&#8221; y &#8220;U&#8221; representaran una lista de &#8220;Ítems&#8221;, &#8220;Etiquetas&#8221; y &#8220;Usuarios&#8221;, como una búsqueda.</p>
<p>Veamos algunos ejemplos:</p>
<blockquote><p>Al pedir U(í), estaremos pidiendo todos los Usuarios de un Ítem í.<br />
<em>(En SQL sería: select u.* from usuarios u, usuarios_ítems ui where u.id = ui.usuario_id and ui.item_id = algun_item_id; )</em></p>
<p>Al pedir U(e), estaremos pidiendo todos los Usuarios que tengan la Etiqueta e.<br />
<em>(En SQL sería: select u.* from usuarios u, usuarios_etiquetas ue where u.id = ue.usuario_id and ue.etiqueta_id = alguna_etiqueta_id; )</em></p></blockquote>
<p>Similarmente obtendremos:</p>
<blockquote><p>Í(u) serán todos los Ítems de un Usuario u.<br />
Í(e) serán todos los Ítems que tengan una Etiqueta e.<br />
E(í) serán todas las Etiquetas que estén asignadas a un Ítem í.<br />
E(u) serán todas las Etiquetas que haya usado un Usuario u.</p></blockquote>
<p>Ahora, si buscamos en un segundo grado de profundidad, podremos encontrar consultas un poco mas interesantes que las anteriores.</p>
<blockquote><p>Por ejemplo, E(U(e)) es una colección de todas las Etiquetas que tienen todos los Usuarios que tienen una Etiqueta e.<br />
<em>(Su SQL sería: select e.* from etiquetas e, usuario_etiquetas ue, where ue.usuario_id in (select usuario_id from usuario_etiquetas where etiqueta_id = alguna_etiqueta_id))</em></p></blockquote>
<p>Aquí podemos observar que es mucho mas sencillo decir lo que queremos, &#8220;Una colección de todas las Etiquetas que tienen todos los Usuarios que tienen una Etiqueta e&#8221;, que su representación en SQL que puede llegar a ser mas compleja de entender sin la explicación previa.</p>
<p>De esta manera, con la notación que hemos utilizado podemos encontrar varias consultas de segundo grado.</p>
<p>Estas consultas las veremos mas adelante en alguna otra publicación, creo que ya es demasiada información por una única entrada.</p>
<img src="http://www.stardustxs.com/?ak_action=api_record_view&id=233&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.stardustxs.com/2008/03/04/esquema-de-etiquetas-tag-schema/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
