{"id":1065,"date":"2024-07-31T10:31:53","date_gmt":"2024-07-31T08:31:53","guid":{"rendered":"https:\/\/blog.sutilweb.eu\/?page_id=1065"},"modified":"2024-07-31T10:31:53","modified_gmt":"2024-07-31T08:31:53","slug":"05-principios-de-instagram","status":"publish","type":"page","link":"https:\/\/sutilweb.eu\/index.php\/databases\/modelado-de-bases-de-datos\/05-principios-de-instagram\/","title":{"rendered":"05. Principios de Instagram"},"content":{"rendered":"\n<p>En este ejercicio vamos a crear un modelado que va a simular los principios de la aplicaci\u00f3n <strong>Instagram.<\/strong><\/p>\n\n\n\n<!--more-->\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p><strong>Nota:<\/strong> para una estructura tipo red social viene mejor el modelo no relacional, ya que s\u00ed hay relaciones, pero no se hacen c\u00e1lculos, sino lo que se accede es a la relaci\u00f3n en s\u00ed, no tanto la integridad de los datos como tal.<\/p>\n<\/blockquote>\n\n\n\n<p>Vamos a crear un archivo markdown denominado <em>IG_LogicaNegocio.md,<\/em> que va a tener la siguiente sintaxis.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"># Red Social Fotograf\u00edas\n\n## Listado de Entidades\n\n### posts **(ED)**\n\n- post_id **(PK)**\n- post_date\n- plot\n- photo\n- user_id **(FK)**\n\n### users **(ED)**\n\n- user_id **(PK)**\n- user_date\n- user_name\n- email **(UQ)**\n- password\n- phone **(UQ)**\n- bio\n- web\n- avatar\n- birthdate\n- genre\n- country **(FK)**\n\n### comments **(ED | EP)**\n\n- comment_id **(PK)**\n- comment_day\n- comment\n- post_id **(FK)**\n- user_id **(FK)**\n\n### hearts **(ED | EP)**\n\n- heart_id **(PK)**\n- heart_date\n- post_id **(FK)**\n- user_id **(FK)**\n\n### follows\n\n- follow_id **(PK)**\n- follow_date\n- follow_user\n- following_user **(FK)**\n\n### countries **(EC)**\n\n- country_id **(PK)**\n- country_name\n\n## Relaciones\n\n1. Los **users** publican **posts** (_1 - M_)\n1. Los **users** escriben **comments** (_1 - M_)\n1. Los **posts** tienen **comments** (_1 - M_)\n1. Los **users** otorgan **hearts** (_1 - 1_)\n1. Los **posts** tienen **hearts** (_1 - M_)\n1. Los **users** tienen **follows** (_1 - M_)\n1. Los **users** siguen **follows** (_1 - M_)\n1. Los **users** tienen un **countries** (_1 - 1_)\n\n## Diagramas\n\n### Modelo Relacional de la bd\n\n## Reglas de Negocio\n\n### posts\n\n1. Crear un post\n1. Leer todos los posts\n1. Leer un post en particular\n1. Leer los posts de un user\n1. Actualizar el plot (texto \/ descripcion) de un post\n1. Eliminar un post\n\n### users\n\n1. Crear un user\n1. Leer todos los users\n1. Leer un user en particular\n1. Validar un user\n1. Actualizar datos del user\n1. Actualizar password del user\n1. Eliminar user\n\n### comments\n\n1. Crear un comment en un post\n1. Leer todos los comments de un post\n1. Leer un comment de un post en particular\n1. Contar el n\u00famero de comments de un post\n1. Actualizar el comment de un post\n1. Eliminar comment de un post\n\n### hearts\n\n1. Crear heart de user en un post\n1. Contar el n\u00famero de hearts de un post\n1. Eliminar heart de user en un post\n\n### follows\n\n1. Crear follow de un user\n1. Contar el n\u00famero de followers de un user\n1. Contar el n\u00famero de followings de un user\n1. Eliminar follow de un user\n\n### countries\n\n1. Crear un country\n1. Leer todos los countries\n1. Leer un country en particular\n1. Actualizar un country\n1. Eliminar un country<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>En este ejercicio vamos a crear un modelado que va a simular los principios de la aplicaci\u00f3n Instagram.<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":1050,"menu_order":4,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_uag_custom_page_level_css":"","site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"class_list":["post-1065","page","type-page","status-publish","hentry"],"uagb_featured_image_src":{"full":false,"thumbnail":false,"medium":false,"medium_large":false,"large":false,"1536x1536":false,"2048x2048":false},"uagb_author_info":{"display_name":"Sutil Web","author_link":"https:\/\/sutilweb.eu\/index.php\/author\/sutilweb\/"},"uagb_comment_info":0,"uagb_excerpt":"En este ejercicio vamos a crear un modelado que va a simular los principios de la aplicaci\u00f3n Instagram.","_links":{"self":[{"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/pages\/1065","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/comments?post=1065"}],"version-history":[{"count":1,"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/pages\/1065\/revisions"}],"predecessor-version":[{"id":1066,"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/pages\/1065\/revisions\/1066"}],"up":[{"embeddable":true,"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/pages\/1050"}],"wp:attachment":[{"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/media?parent=1065"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}