Bueno y aquí estamos vamos a querer nuestro modelado nuestro diagrama de entidad relación en Workbench
y vamos a ir manos a la obra qué es lo que tenemos que hacer tenemos que ir a digamos Fáil a nuestro
primer menú y vamos a crear un nuevo modelo o pulsamos controlen y se nos abre el modelador de datos.
Esto que nos aparece aquí nos va a permitir primero grabar UNAB crear una base de datos lo vamos a crear.
Hacemos doble clic le vamos a poner el nombre por ejemplo le vamos a poner ventas sistema mentas sistema
vamos a crearlo con esta muy bien de F8 está perfecto y vamos a dejar la general para que no tengamos
problemas con Ennies acentos y demás UTEP F8 general y tenemos ya nuestra base de datos.
Ya hemos creado nuestra base de datos lo que vamos a hacer ahora es agregar un diagrama cada base de
datos puede tener n diagramas porque una base de datos puede servir para un sistema grande administrativo
donde tenemos distintos tipos de diagramas distintos tipos de subsistema por decirlo de alguna manera
y vamos a crear el diagrama principal de ventas ok vamos a nosotros vamos a hacer aquí un diagrama de
ventas que va a ser un diagrama de ejemplo para aprenderlo.
No vamos a hacer un sistema real pero bueno vamos a ver que tenemos nuestra nuestro panel para crear
nuestro nuestra grilla para crear todo nuestro diagrama tenemos toda una botonera vamos a ir viendo
qué son las opciones que tenemos para crear nuestros objetos nuestras relaciones sobre todo y aquí tenemos
nuestro explorador de nuestra base de datos.
Por ahora no tenemos tablas porque no tenemos ni vistas ni rutinas ni grupos de rutina lo que vamos
a crear en esta.
En este capítulo son las tablas y sus relaciones.
No vamos a crear vistas porque como les digo no vamos a hacer un sistema de cero real sino que vamos
a aprender a crear nuestros modelados lo que vamos a hacer ahora es crear una nueva tabla y lo que tenemos
que hacer es cumplir con una serie de requerimientos.
Yo aquí he grabado una serie de requerimientos de vamos a crear por ejemplo un sistema de ventas vamos
a leerlas rápidamente.
Se realizarán ventas por productos de productos se manejarán datos de proveedores se manejarán datos
de clientes los productos estarán asociados a múltiples categorías los productos estarán asociados a
una lista de precios y se guardarán las ventas y sus detalles unidos a los clientes y a los productos.
Vamos a ver cómo ir creando vamos a ir al primer requerimiento vamos a crear nuestra tabla de productos
vamos a volver a nuestro modelado.
Vamos a hacer clic en ubicar una nueva tabla y vamos a hacer clic en la grilla.
Es un clic para elegir el elemento y otro clic para volcar ese elemento en la grilla.
Vamos a ampliarlo hacemos doble clic y nos aparece en la parte inferior para que coloquemos por ejemplo
el nombre de la tabla.
Vamos a ponerlo en plural nombre de la tabla productos y aquí al hacer clic fíjense que ya se va actualizando
todo visualmente.
Vamos a ir creando las columnas.
Recuerden que yo había colocado por convención el prefijo Prov y aquí vamos a decir que nuestro aided
la primer columna el primer campo automáticamente asume que es nuestra primarily nos tildã aquí el primarily
y lo vamos a dejar así porque lo vamos a usar como convención nos pide el tipo de dato lo BAP está muy
bien dejarlo de tipo entero si no ya sabemos que de acuerdo a la cantidad de artículos que vamos a tener
en nuestra tabla vamos a elegir otro tipo de número entero si no queremos que sea un si no queremos
que sea un entero podemos hacer un video Ninet.
Aquí está medio ni muy bien aquí tenemos la columna de primarily la columna de Nul está tildada aquí
vemos que está atildada la columna de iónicas si va a ser una o una clave única en este caso no podemos
seleccionar Primary Yony ya lo habíamos visto porque de hecho mi prima ariki es Unione es como redundante.
Luego si es un campo Binary no es el caso si es an signed lo podemos tildar si es auto incremental es
fundamental porque vamos a ir creando nuestros productos si se va a ir creando automáticamente el aided
y ahora vamos a crear algunos campos más perdón yo puse Prov y Okkhoy de producto no de proveedor corregimos
eso y ahora voy a ponerle por ejemplo la descripción muy bien aquí le vamos a poner que es de 60 aquí
vamos a dejarlo como está podemos poner que sea.
No no no porque en realidad no puedo tener un registro sin la descripción.
Vamos a crear otro campo más color lo vamos a dejar así y por ahora vamos a crear estos campos porque
luego vamos a agregarle más campos que tienen que ver con las llaves foráneas que nos van a unir por
ejemplo los productos a las categorías y los productos nos vamos a unir a la tabla.
Proveedores.
Muy bien vamos a ver nuestro segundo requerimiento.
Aquí tenemos nuestra tabla tenemos una solapa de Index de índices que nos muestra que tenemos nuestra
prima ariki muy bien.
Vamos a ir a nuestro segundo requerimiento que dice que se manejarán datos de proveedores.
Vamos a crear la tabla proveedores.
Nuevamente hacemos clic aquí.
Clic en la grilla.
Vamos a ampliar esto vamos a desplazar hacemos doble clic y aquí vamos a usar proveedores muy bien vamos
a aquí pero aquí si es Prov ir muy bien.
Tenemos nuestra Primary que le vamos a decir que es auto incremento fíjense las diferencias que hay
entre Workbench y lo que era Jaydy se huele.
Vamos a decirle que el proveedor tiene un nombre y nada más.
No quiero ahondar mucho en esto porque lo que vamos a ver ahora es el modelado.
No me interesa crear más cosas como en las si las hemos visto en detalle en los primeros capítulos del
curso.
Muy bien tenemos nuestro proveedor y ahora lo que vamos a hacer es crear en nuestra tabla productos
nuestro.
Nuestra Foreing aquí de proveedor.
Cómo vamos a hacer o vamos a hacer Prod Prov.
Vamos a crear un poquito ahí la vamos a colocar del mismo modo si proveedores tenemos ese número de
este tipo entero.
Fíjense que de tipo entero vamos a tener que crear está este campo del mismo tipo tipo entero muy bien.
Ahora vamos a grabar esto saliendo del diseño ya se actualizan los datos muy bien qué vamos a hacer
ahora.
Lo que vamos a hacer ahora es usar vamos a bajar un poquito aquí vamos a ver que nosotros aquí tenemos
más herramientas que tienen que ver con las relaciones por qué.
Porque voy a tener que relacionar mi tabla productos con la tabla a proveedores en base al campo de
Prov Heydi lo que vamos a hacer esta es una relación de 1 a n porque por un producto puede haber perdón
de 1 a n porque un proveedor por tener n productos y lo que se hace se busca en las relaciones una que
tenga que ver con 1 a N que es esta donde voy a identificar la relación hago click y lo que se hace
siempre siempre se hace clic en el hijo primero y luego en el padre.
Al hacer de esta manera me pone la dirección correcta porque de un proveedor puede haber n fíjense que
hay más de una bifurcación puede haber n productos y esta es la relación que yo tengo con productos
y su padre que es los proveedores muy bien podemos hacer podemos editar la relación podemos colocarle
a la Foreing un nombre en particular y tenemos unidos ya los campos.
Vamos ahora a hacer una a continuar con los requerimientos.
Vamos a ir a nuestro a nuestra bitácora y ahora nos dice que nuestro sistema va a manejar datos de clientes.
Vamos a crear la tabla a clientes muy bien.
Doble clic lo ampliamos aquí vamos a poner clientes vamos a poner clic ahí.
Como ya lo habíamos hecho antes ya nos pone en nuestra Primary qué le vamos a decir que es auto incremento
y vamos a colocarle el nombre CLI nombre muy largo.
Ahora no me voy a preocupar por nada de esto lo voy a dejar aquí para continuar con el diagrama.
Vamos a ir a nuestro cuarto requerimiento dice que los productos estarán asociados a múltiples categorías.
Esto es muy importante verlo lo hecho de esta manera porque vamos a ver que cuando las relaciones n
amuchos es más complicado no se pueden unir simplemente tablas donde haya múltiples.
Por ejemplo un producto puede tener múltiples categorías y las categorías pueden a su vez del mismo
modo estar relacionadas a múltiples productos.
Vamos a crear por ejemplo la tabla categorías vamos a crear la tabla categorías DoubleClick categorías
aquí voy a darle por supuesto un prefijo Categ aided y vamos a colocarle un Categ nombre muy bien la
idea de base o auto incremental.
Ahora lo que vamos a hacer vamos a agravarlo por las dudas para que impacte vamos a grabar nuestro diagrama.
Ustedes lo pueden grabar donde quieran.
Le voy a poner ventas sistema muy bien grande el objeto hoy tengo muy bien ahora yo tengo que unir categorías
a productos pero no me sirve ninguna de estas opciones que tengo aquí.
Voy a hacer click para ver más y aquí tengo la N 2 puntos C.M. que es la que me permite unir en registros
a múltiples registros.
Hago click le hago click por supuesto en categorías y luego voy a artículos y lo que hace lo que hace
automáticamente me crea una tabla me crea una tabla totalmente intermedia para unir esos dos mundos
el tema de productos con el tema de categorías tiene que ver una serie de requisitos.
Por eso crea una tabla porque va a haber múltiples registros sea de productos o sea de categorías.
Aquí hay un campo que está además vamos a hacerle doble clic aquí porque ha detectado que hay una identidad
que es proveedores pero yo la voy a eliminar.
Vamos a eliminar esto de aquí para que solamente quede productos y categorías.
Aquí hay algo que no está muy visible porque tengo más campos hoy está muy bien y ahora tengo ya unido
en una tabla intermedia lo que es mis categorías y mis productos cuando mi sistema quiera ver todos
los productos de una categoría determinada va a actuar sobre esta tabla ni sobre ésta ni sobre ésta
va a actuar sobre ésta y esta tabla es la tabla donde vamos a ir grabando las asignaciones que hagamos
de productos con categorías.
Esto era importante verlo porque ustedes ahora ven que cuando quieren hacer este tipo de relaciones
el Workbench automáticamente me crea la tabla auxiliar.
Vamos a seguir viendo nuestros requerimientos.
Los productos estarán asociados a una lista de precios.
Vamos a crear una tabla nueva que es la tabla lista de precios doble click la vamos a llamar precios
y aquí vamos a tener precios aided que le vamos a tildar el auto incremento de precios por añadir más
porque tiene que estar relacionado con un con un artículo o con un producto y ahora le vamos a poner
aquí podemos ponerle que sea Ironic por qué no se puede repetir el producto en la lista de precios.
Esto es en el modelado que estoy haciendo ahora en la vida real no va a ser así tan tan simple como
esto que estamos.
Recuerden que yo ya lo comenté un sistema real tiene aproximadamente de 300 a 400 tablas puede tener
muchas más.
Puede ser algún sistema mediano y puede tener algunas menos y estamos hablando de tablas con muchos
campos.
Ahora estamos viendo un ejemplo y aquí vamos a colocar precios valor y valor es el precio en sí mismo.
Vamos a decirle que es de tipo decimal y vamos a decirle que es diez coma tres que va a ser aun signed
no puede ser en negativo un precio y vamos a decirle que no sea nulo muy bien.
Ya tenemos aquí tenemos la forma de unir nuestra nuestra tabla de precios con la tabla productos muy
bien ahora yo tengo que unir mi productos a mis precios y esta es una relación uno a uno.
Aquí tenemos una relación uno a varios.
Un proveedor puede tener varios productos aquí tenemos n y lo que vamos a ver ahora es una relación
uno a uno por cada producto hay un precio y entonces vamos a usar el primer relacionadocon que es el
uno a uno.
Hacemos clic en uno en el otro vamos a correr para que ustedes puedan verlo y ya tenemos relacionado
fíjense que los extremos son diferentes cuando de uno a varios cuandos de uno a varios.
Y ahora tenemos uno a uno muy bien ya tenemos nuestro requerimiento de lista de precios y ahora vamos
a ver la parte de ventas que las ventas van a estar unidas a clientes y productos vamos a hacer algo
muy muy visualmente claro que tiene que ver con los frames que vamos a unir todo lo que tiene que ver
con productos por un lado esto lo podemos tirar por aquí estos proveedores vamos a crear un player que
es un área muy bien al Layer le vamos a colocar un título que esto es productos porque le podemos dar
un color diferente esto lo manejan ustedes.
Vamos a bajar un poquito todo esto.
Esto nos va a permitir visualizar mucho más claro porque no baja está hoy en rebelde del sistema hoy
que tengo que mostrarles cómo funciona me está dando algún que otro dolor de cabeza qué es lo que nos
permite los layers mover todo el conjunto.
Fíjense lo versátil que es esto.
Si yo tengo que mover y hacer un diagrama muy grande donde tengo que ver muchas cosas.
Esto me permite ir moviendo grupos de entidades como ser las categorías los precios los productos que
pertenece todo a un subsistema que es el sistema de stock y productos.
Y aquí tenemos el sistema de ventas y aquí tenemos el sistema de compras muy bien para el sistema de
compras solo tenemos los proveedores.
Aquí podríamos tener otro player si estamos haciendo un sistema real otro player con éste vamos a ver
si ahora me permite achicar no tenemos el sistema de compras otras tablas que tienen que ver con las
facturas de compra los recibos los ingresos de la mercadería los historiales y muchas tablas más los
métodos de pago de los proveedores cuentas bancarias.
Va a haber otro player que sea el tema contable de nuestro sistema y el sistema de ventas que va a tener
clientes vendedores facturas y demás que van a hacer otro player de otro color y que vamos a tener diagramas
muy grandes.
Aquí lo hacemos así porque vamos a relacionar esos mundos pero generalmente lo que se hace es un diagrama
por su sistema y luego se unen los diagramas los distintos diagramas se unen de alguna manera así que
lo que vamos a hacer ahora es crear nuestras dos tablas que faltan que son las tablas de venta y detalle
y vamos a ver cómo van a ir unidas.
Vamos a hacer click aquí vamos a hacer click nuevamente vamos a crear nuestra tabla de venta recuerden
que nosotros generalmente creábamos una tabla de cabecera.
Esta va a ser ventas encabezado lo vamos a llamar así y lo que vamos a hacer ahora con nuestra tabla
es crearle los campos aquí en columnas vamos a no sé por qué no me aparece perdonador así esto era para
ocultarlo de las columnas lo que pasa es que eso no me avive que lo había.
No me di cuenta que lo había ocultado.
Vamos a crear las columnas ventas le voy a poner una e de encabezado para no ser el nombre muy largo
el nombre aided Primary auto incremento y lo que vamos a hacer aquí es buscar el Binet recuerden que
era nuestro gran nuestro gran entero Beguin por qué va a ser una tabla de muchos registros.
Aquí yo puedo colocarle no sé 10 enteros muy bien.
Ahora esta tabla de ventas va a tener varias uniones va a tener que tener vamos a poner.
Vamos a poner primero campos que tienen que ver con nuestra venta que tienen que ver con los datos de
una factura por ejemplo la fecha vamos a ahora sí unir a qué clientes mi nuestro clima y de cómo se
enteró.
Vamos a tener que usar el Hint muy bien y vamos a crear uno más.
Total total de factura recuerden en un sistema real la tabla cabecera de ventas tiene 30 40.
He visto tablas mucho más grandes mucho más grandes inclusive en los sistemas que yo estoy programando
en la compañía de software que trabajo tienen muchísimas pero muchísimas tablas y muchísimos campos
cada tabla.
Muy bien ahora ya tenemos nuestra tabla de ventas vamos a hacer la relación verdad vamos a hacer la
relación de 1 a n donde vamos a relacionar nuestra tabla de ventas con nuestros clientes muy bien.
Un cliente puede tener en ventas por eso lo tenemos de esta manera.
Recuerden que hago click primero en el hijo y luego en el padre.
Muy bien ahora vamos a crear la última tabla que tiene que ver con el detalle vamos a crearla por aquí
esto ustedes lo van a fijense todo el espacio que tenemos pero para que el video pueda verse aquí vemos
el desplazamiento que podemos hacer.
Vamos a chicarrón un poquito vamos a ponerlo al no ahí se va a deformar mucho el video vamos a dejarlo
como está.
Vamos a colocar aquí nuestra tabla de ventas para poder unir nuestros productos a esta tabla levamos
la vamos a llamar ventas detalle ventas de aided otra tabla que va a tener muchos registros y vamos
a tener que usar nuestro Binet.
También le ponemos de 10 dígitos auto incremental aquí que creen que vamos a tener que hacer aquí vamos
a tener que unir nuestra tabla de ventas detalle a la tabla de ventas encabezado entonces puedo hacer
así pueda ser así.
Ustedes le ponen el nombre que ustedes quieran y aquí vamos a poner que es Beguin porque nuestra tabla
de encabezado es virgen le ponemos de 10 también y aquí no puede ser un iki y un equip no porque va
a haber muchos registros de una tabla han encabezado una factura la factura número 10 va a tener cinco
productos entonces voy a tener cinco registros y aquí lo que voy a hacer es voy a colocar nuestro producto
el producto es entero nuestro producto entero.
Perdón ahí vamos a ver si podemos bajar un poquito y ahora vamos a colocar datos que tienen que ver
con el detalle cómo por ejemplo la cantidad no vamos a ahondar más porque ya hemos visto cómo crear
cómo están creadas nuestras tablas de detalle y demás no me interesa más que ustedes puedan tener un
un pantallazo de cómo crear un diagrama y vamos a ver vamos a ponerle un medio Ninet estaba buscando
eso de cinco dígitos más no y vamos a ver que es muy importante cómo luego convertir este modelo este
diagrama en una base de datos real porque por ahora no estoy creando una base de datos.
Esto es importante que ustedes lo sepan todo esto que estoy haciendo aquí no es más que un modelo.
Yo no estoy creando una base de datos y yo ahora salgo de aquí y voy a mi motor y busco la base de datos
que recuerden que se llamaba ventas sistema la base de datos no la tengo creada todavía.
Vamos a ver cómo hacerlo muy bien vamos a poner a mitad de camino vamos a colocar esto aquí y vamos
a crear un Layer que sea ventas.
Ahora vamos a acomodar más esto esto esto por aquí hacemos clic en el hierro le vamos a elegir otro
color por ejemplo verde este mes me van a estar insultando en 20 idiomas porque se pone muy chillón
el color el layers se va a llamar ventas que es el subsistema de ventas muy bien y ahora tenemos el
subsistema producto subsistema ventas y esto va a ser del subsistema de compras vamos a crearlo aquí
vamos a bajar un poquito DoubleClick para poder manejarlo aquí se va a llamar compras y aquí lo que
vamos a hacer es obviamente vamos a cambiarle a otro color muy bien ya tenemos visualmente fijense visualmente
y a nivel documental cómo queda nuestro sistema.
Yo lo que quiero es que no se confundan porque esta línea está molestando aquí ustedes lo pueden manejar
muy bien ahora vamos a unir nuestro detalle en primer lugar que va a ser una relación de 1 a n click
en el hijo click en el padre a nuestra tabla de ventas y vamos a unir nuestras ventas detalla productos.
Entonces otra vez la relación de uno en ventas detalle a productos.
Ahora sí tenemos un lío de cañerías.
Ha quedado claro esto cómo estamos uniendo todo muy bien ahora lo que vamos a hacer y lo que vamos a
ver en el próximo capítulo es cómo convertir todo este diagrama en un script para con las instrucciones
los insert los criadita para crear las tablas para los halter los Krieg los halter para crear los campos
para que cree los índices y demás y eso se va a volcar a nuestra base de datos a nuestro motor como
una nueva base de datos así que nos vemos en el próximo capítulo.