{"id":154,"date":"2015-03-22T19:20:59","date_gmt":"2015-03-22T17:20:59","guid":{"rendered":"http:\/\/pymessoft.com\/web\/?p=154"},"modified":"2016-12-21T20:09:15","modified_gmt":"2016-12-21T18:09:15","slug":"bases-de-datos-especializacion-modelos-sql-ddl","status":"publish","type":"post","link":"https:\/\/pymessoft.com\/web\/bases-de-datos-especializacion-modelos-sql-ddl\/","title":{"rendered":"Bases de datos: Especializaci\u00f3n, Modelos SQL-DDL"},"content":{"rendered":"<p style=\"text-align: justify;\" align=\"CENTER\"><span style=\"color: #000000;\"><span style=\"font-family: courier new,times new roman,monospace;\"><span style=\"font-size: medium;\">En ocasiones surgen en nuestros modelos Entidad- Relaci\u00f3n, una entidad que a su vez posee especializaci\u00f3n. Por ejemplo, tenemos una entidad llamada \u00abJugadores\u00bb, los cuales pueden tener una \u00abespecialidad\u00bb, por ejemplo, \u00abporteros\u00bb, \u00abdelanteros\u00bb, etc. Con unas caracter\u00edsticas peculiares aparte de las propiedades comunes a los jugadores.<br \/>\n<\/span><\/span><\/span><\/p>\n<p style=\"text-align: justify;\" align=\"CENTER\">Es lo que llamamos una especializaci\u00f3n. Veamos un ejemplo completo para MySQl:<\/p>\n<p style=\"text-align: justify;\"><span style=\"color: #000000;\"><span style=\"font-family: courier new,times new roman,monospace;\"><span style=\"font-size: small;\">DROP DATABASE IF EXISTS\u00a0 especial;<br \/>\nCREATE DATABASE\u00a0 especial;<br \/>\nUSE especial;<\/span><\/span><\/span><\/p>\n<p>DROP TABLE IF EXISTS `basico`;<br \/>\nCREATE TABLE basico(<br \/>\nid_u INT(6) NOT NULL default &#8216;0&#8217;,<br \/>\nnombre VARCHAR(20) default NULL,<br \/>\nPRIMARY KEY (id_u)<br \/>\n)TYPE = MyISAM CHARSET=utf8;<\/p>\n<p>DROP TABLE IF EXISTS `especializacionA`;<br \/>\nCREATE TABLE especializacionA(<br \/>\nid_usuarioA INT(6) NOT NULL default &#8216;0&#8217;,<br \/>\nidA INT(9) NOT NULL default &#8216;0&#8217;,<br \/>\ninfoA VARCHAR(20) default NULL,<\/p>\n<p>PRIMARY KEY (id_usuarioA,idA)<br \/>\n)TYPE = MyISAM CHARSET=utf8;<\/p>\n<p>DROP TABLE IF EXISTS `especializacionB`;<br \/>\nCREATE TABLE especializacionB(<br \/>\nid_usuarioB INT(6) NOT NULL default &#8216;0&#8217;,<br \/>\nidB INT(9) NOT NULL default &#8216;0&#8217;,<br \/>\ninfoB VARCHAR(20) default NULL,<br \/>\ncolorB VARCHAR(20) default NULL,<\/p>\n<p>PRIMARY KEY (id_usuarioB,idB)<br \/>\n)TYPE = MyISAM CHARSET=utf8;<\/p>\n<p>#&#8211; Refer\u00e8ncia A &#8211;&gt; basico<br \/>\nALTER TABLE especializacionA ADD\u00a0 CONSTRAINT espA_FK1<br \/>\nFOREIGN KEY (id_usuarioA)<br \/>\nREFERENCES basico (id_u) ;<\/p>\n<p>#&#8211; Refer\u00e8ncia B &#8211;&gt; basico<br \/>\nALTER TABLE especializacionB ADD\u00a0 CONSTRAINT espB_FK1<br \/>\nFOREIGN KEY (id_usuarioB)<br \/>\nREFERENCES basico (id_u) ;<\/p>\n<p style=\"text-align: justify;\"><span style=\"color: #000000;\"><span style=\"font-family: courier new,times new roman,monospace;\"><span style=\"font-size: small;\">INSERT INTO basico VALUES(&#8216;1&#8217;, &#8216;Eric&#8217;);<br \/>\nINSERT INTO basico VALUES(&#8216;2&#8217;, &#8216;Ana&#8217;);<br \/>\nINSERT INTO basico VALUES(&#8216;3&#8217;, &#8216;Pepe&#8217;);<br \/>\nINSERT INTO basico VALUES(&#8216;4&#8217;, &#8216;Juan&#8217;);<br \/>\nINSERT INTO basico VALUES(&#8216;5&#8242;,&#8217;Luis&#8217;);<\/span><\/span><\/span><\/p>\n<p>INSERT INTO especializacionA VALUES(&#8216;1&#8242;,&#8217;1&#8242;,&#8217;Cita 1 tipo A&#8217;);<br \/>\nINSERT INTO especializacionA VALUES(&#8216;1&#8242;,&#8217;2&#8242;,&#8217;Cita 2 tipo A&#8217;);<\/p>\n<p>INSERT INTO especializacionA VALUES(&#8216;2&#8242;,&#8217;1&#8242;,&#8217;user 2 tipo A&#8217;);<\/p>\n<p>INSERT INTO especializacionA VALUES(&#8216;3&#8242;,&#8217;1&#8242;,&#8217;user 3 tipo A&#8217;);<\/p>\n<p>INSERT INTO especializacionB VALUES(&#8216;5&#8242;,&#8217;1&#8242;,&#8217;Cita 1 tipo B&#8217;,&#8217;Rojo&#8217;);<br \/>\nINSERT INTO especializacionB VALUES(&#8216;4&#8242;,&#8217;1&#8242;,&#8217;Cita 1 tipo B&#8217;,&#8217;Amarillo&#8217;);<br \/>\nINSERT INTO especializacionB VALUES(&#8216;4&#8242;,&#8217;2&#8242;,&#8217;Cita 2 tipo B&#8217;,&#8217;Blanco&#8217;);<\/p>\n<p style=\"text-align: justify;\"><span style=\"color: #000000;\"><span style=\"font-family: courier new,times new roman,monospace;\"><span style=\"font-size: small;\">mysql&gt; select * from basico ba, especializacionA a, especializacionB b where (ba.id_u=a.id_usuarioA or ba.id_u=b.id_usuarioB) and ba.nombre=&#8217;Ana&#8217;;<br \/>\n+&#8212;&#8212;+&#8212;&#8212;&#8211;+&#8212;&#8212;&#8212;&#8212;-+&#8212;&#8211;+&#8212;&#8212;&#8212;&#8212;&#8212;+&#8212;&#8212;&#8212;&#8212;-+&#8212;&#8211;+&#8212;&#8212;&#8212;&#8212;&#8212;+&#8212;&#8212;&#8212;-+<br \/>\n| id_u | nombre | id_usuarioA | idA | infoA\u00a0 \u00a0 \u00a0 \u00a0 \u00a0| id_usuarioB | idB | infoB\u00a0 \u00a0 \u00a0 \u00a0 \u00a0| colorB\u00a0 \u00a0|<br \/>\n+&#8212;&#8212;+&#8212;&#8212;&#8211;+&#8212;&#8212;&#8212;&#8212;-+&#8212;&#8211;+&#8212;&#8212;&#8212;&#8212;&#8212;+&#8212;&#8212;&#8212;&#8212;-+&#8212;&#8211;+&#8212;&#8212;&#8212;&#8212;&#8212;+&#8212;&#8212;&#8212;-+<br \/>\n|\u00a0 \u00a0 2 | Ana\u00a0 \u00a0 |\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a02 |\u00a0 \u00a01 | user 2 tipo A |\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a05 |\u00a0 \u00a01 | Cita 1 tipo B | Rojo\u00a0 \u00a0 \u00a0|<br \/>\n|\u00a0 \u00a0 2 | Ana\u00a0 \u00a0 |\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a02 |\u00a0 \u00a01 | user 2 tipo A |\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a04 |\u00a0 \u00a01 | Cita 1 tipo B | Amarillo |<br \/>\n|\u00a0 \u00a0 2 | Ana\u00a0 \u00a0 |\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a02 |\u00a0 \u00a01 | user 2 tipo A |\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a04 |\u00a0 \u00a02 | Cita 2 tipo B | Blanco\u00a0 \u00a0|<br \/>\n+&#8212;&#8212;+&#8212;&#8212;&#8211;+&#8212;&#8212;&#8212;&#8212;-+&#8212;&#8211;+&#8212;&#8212;&#8212;&#8212;&#8212;+&#8212;&#8212;&#8212;&#8212;-+&#8212;&#8211;+&#8212;&#8212;&#8212;&#8212;&#8212;+&#8212;&#8212;&#8212;-+<br \/>\n3 rows in set (0.00 sec)<\/span><\/span><\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>En ocasiones surgen en nuestros modelos Entidad- Relaci\u00f3n, una entidad que a su vez posee especializaci\u00f3n. Por ejemplo, tenemos una entidad llamada \u00abJugadores\u00bb, los cuales pueden tener una \u00abespecialidad\u00bb, por ejemplo, \u00abporteros\u00bb, \u00abdelanteros\u00bb, etc. Con unas caracter\u00edsticas peculiares aparte de las propiedades comunes a los jugadores. Es lo que llamamos una especializaci\u00f3n. Veamos un ejemplo&#8230;<\/p>\n","protected":false},"author":1,"featured_media":112,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"footnotes":""},"categories":[8],"tags":[],"class_list":["post-154","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-bases-de-datos"],"_links":{"self":[{"href":"https:\/\/pymessoft.com\/web\/wp-json\/wp\/v2\/posts\/154","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pymessoft.com\/web\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/pymessoft.com\/web\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/pymessoft.com\/web\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/pymessoft.com\/web\/wp-json\/wp\/v2\/comments?post=154"}],"version-history":[{"count":3,"href":"https:\/\/pymessoft.com\/web\/wp-json\/wp\/v2\/posts\/154\/revisions"}],"predecessor-version":[{"id":157,"href":"https:\/\/pymessoft.com\/web\/wp-json\/wp\/v2\/posts\/154\/revisions\/157"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/pymessoft.com\/web\/wp-json\/wp\/v2\/media\/112"}],"wp:attachment":[{"href":"https:\/\/pymessoft.com\/web\/wp-json\/wp\/v2\/media?parent=154"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/pymessoft.com\/web\/wp-json\/wp\/v2\/categories?post=154"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/pymessoft.com\/web\/wp-json\/wp\/v2\/tags?post=154"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}