« first day (1486 days earlier)      last day (1919 days later) » 

06:57
Alguien?
 
2 hours later…
09:19
Buenos días
09:45
@MauricioContreras Te atreves a ayudarme y guiarme un poco?
10:09
@Fernando Hola, si claro, con paciencia lo sacamos
@MauricioContreras Es que tengo un enunciado
@Fernando aunque puedo tardar un poco en responder, estoy con algunos oficios del hogar y pues me ausento temporalmente del teclado entre 10 y 15 minutos a veces
@Fernando muestra el enunciado a ver
Y de ahí crear una db pero no se si tengo que guardar cosas importantes o no
@Fernando Ajá, pero no me has dicho lo que tienes que hacer.ç
@MauricioContreras pastebin.com/FQBaf96w
Es un poco largo, pero tengo dudas puntuales
10:14
XDDD
Me sale el gatito
Ya cargó
En el penultimo parrafo, no se como interpretar lo de 40
He de decir que yo ahora mismo tengo de tablas empleado, instalacion, puesto_trabajo, trabaja_en, examen_medico, incidente [y sustancia]
Lo de sustancia, depende de los examenes medicos, pero no se como si no tengo esa tabla
Si, en todo caso debes tener una tabla de sustancias, es decir, cada registro debe tener un idSustancia, nombreSustancia, valorMinimoSustancia, valorMaximoSustancia, ..., etcSustancia O algo por el estilo. Para poder identificar correctamente una sustancia y usar idSustancia como PK (me atrevo a hacer un índice compuesto por idSustancia, nombreSustancia para optimizar las búsquedas) y en las tablas donde se use una relación sustancia, apuntar idSustancia como FK.
Por lo tanto tu tabla sustancia ha de contener 40 registros o filas
@MauricioContreras y la inicializo a algo? por que es que me dice que es algo interno que mantiene la empresa
Lo de valorMinimo y valorMaximo, lo coloco como un extra, ya que las posologías siempre se manejan en parámetros de acuerdo a lo que sea la sustancia. Eso no es totalmente necesario, pero a futuro es una forma de mantener un campo adecuado para establecer dichos valores. Por ahora no te lo piden.
Si es algo interno o no, es irrelevante, en todo caso lo vas a necesitar. Cada vez que un médico recete una sustancia, debe tener un lugar desde donde escogerla según su nombre o id, y ese lugar es precisamente dicha tabla.
sustancia(nombre_sustancia, valor, cod_examen) con posibilidad de adición de atributos maximo y minimo
10:25
Yo que tu me agarro 40 nombres de sustancia X que consigas en cualquier lado y empiezo a llenar la tabla, escoge nombres de sustancias existentes: Permetrina, Amoxicilina, Paracetamol, etc. Yo lo haría así.
Vale
En cada examen médico pueden medirse todas o solo algunas de ellas. Para cada medida que se toma, se indica el nombre de la sustancia y el valor observado en el empleado.
Un momento, las sustancias no son compuestos farmacéuticos, entendí mal, son sustancias existentes en el cuerpo humano, por ejemplo un examen sanguíneo consta de leucocitos, hematocritos, etc,
Me está diciendo que para un examen, las sustancias esta entre 1 y 40 inclusive
Otras sustancias pueden ser compuestos químicos derivados de la sintetización de alimentos, bebidas y drogas.
Un examen de Perfil 20 sanguineo toma de 10 a 12 valores diferentes de la sangre. Un examen hormonal toma otras 10 o 15 sustancias, y así sucesivamente. Es mucho lo que puedes poner en tu tabla para algunos exámenes específicos o muestras.
Pero se refiere a las sustancias que tiene que medirse al menos 1 y no pasarse
no?
10:32
Lo de las sustancias indica que hay una selección múltiple de hasta 40 elementos de una lista, es decir, un examen puede pedir la medida de 1 sustancia o de 3 o de 30 o de 40. Imagina una lista con checkbox y el médico va checkeando las que desee o necesite.
Vale si es una buena comparativa
Lo importante es que se puedan escoger entre 1 (mínimo) y 40 como máximo
En la linea 3 de "Se guarda también la información sobre los puestos que van ocupando los empleados a lo largo del tiempo (ya que el tipo de puesto influye en la probabilidad de estar expuesto a estas sustancias), y las dosis recibidas en circunstancias especiales (servicios en zonas de especial riesgo, accidentes, etc.)."
los valores minimos y maximos son referenciales, dado que es un ejercicio no entran en temas de edad ni sexo. Yo he trabajado con laboratorios clínicos y entiendo lo que estoy hablando
Guardar el puesto bien que se realiza por el paréntesis, el paréntesis ahí está de refuerzo
y las dosis recibidas en circunstancias especiales? Como lo guardo si no hay nada en el texto que me indique que al estar en tal sitio recibe mas radiación y demas?
10:37
Yo crearía una tabla histórica con un registro de puestos, puedes llamarla historicoPuesto, en la misma colocaría un id autoincremental como PK, un campo FK que apunte al idEmpleado, un campo de nombrePuesto, un campo de fechaAsignado.
Tengo una tabla trabaja_en
Haría un índice usando id, idEmpleado, nombrePuesto para optimizar las búsquedas.
trabaja_en(nro_empleado, nombre_puesto, fecha_alta, fecha_baja)
luego otra tabla puesto_trabajo(nombre_puesto, tipo_puesto, categoria)
instalacion(codigo_instalacion, nombre_instalacion, nombre_puesto)
como me dice que el nombre de puesto es unico de la instalacion, se lo meto en la tabla instalacion
@Fernando fecha_baja es un dato redundante, aunque también sirve si deseas tenerlo de esa forma. Si un empleado trabaja en Almacen desde 01 de enero, y en 23 de mayo lo mueven a planta de producción, la fecha de asignación al nuevo puesto es la fecha de baja del último puesto, es así de simple
referencio el nombre en puesto_trabajo para añadirle 2 atributos
y despues en trabaja_en es un historial
@MauricioContreras y como controlas que no trabaje al mismo tiempo en dos sitios? Puede que lo despidan o esté un período sin trabajar
10:42
las dos tablas instalacion y puesto_trabajo están bastante bien.
@Fernando buen punto, entonces tu aproximación es la más adecuada
Que si la cosa es un ascenso, veo mas adecuado lo tuyo, pero si está de baja o una excedencia o cualquier otra cosa pues la cosa cambia
acostumbra a usar como FK la id del registro, ya que siendo la id la PK de la tabla relacionada, las búsquedas serán más rápidas. A menos que crees los índices compuestos en la tabla relacionada.
A que te refieres con eso?
En tu tabla instalación tienes: instalacion(codigo_instalacion, nombre_instalacion, nombre_puesto)
10:45
Yo usaría: instalacion(codigo_instalacion, nombre_instalacion, id_puesto)
Luego al hacer el INNER JOIN por ejemplo, la búsqueda sería más eficiente, ya que id_puesto es la PK de la tabla puesto_trabajo
A menos que en tu tabla instalación el campo nombre_puesto no esté relacionado con puesto_trabajo, eso sería no óptimo.
En instalacion tengo las 3 de PK por que no se pueden repetir y en puesto_trabajo tengo la FK de instalacion que a su vez es PK en epuesto_trabajo
@Fernando pues lo vemos al revés, XDDD
Yo lo unico que sigo es el enunciado, osea las restricciones que indica
La empresa tiene varias instalaciones, cada una de ellas con un nombre y código únicos. Cada puesto de trabajo está asignado a una de estas instalaciones, tiene un nombre. En la misma instalación puede haber varios puestos del mismo tipo y categoría, pero cada uno de ellos tendrá un nombre diferente.
Por eso el nombre_puesto se lo pongo en la instalacion por que depende de el y lo referencio en puesto_trabajo
@Fernando pues eso, tu mismo
Vale y ya la ultima duda
10:52
@Fernando eso lo comprendo, pero si un puesto tiene nombre único, también lo es su id. Igual si la relación la entiendes de esa forma, y es válida, pues también sirve.
podria usar instalacion(codigo_instalacion, nombre_instalacion, id_puesto)
y puesto_trabajo(id_puesto, nombre_puesto, tipo_puesto, categoria)
@Fernando si, es lo que trato de explicarte, y puedes crear un índice compuesto por id_puesto, nombre_puesto, para acelerar las búsquedas por nombre de puesto.
En la primera todos los atributos serian PK y en la segunda PK (id_puesto,nombre_puesto) que es FK de id_puesto de instalacion
@Fernando En qué BD trabajas? Oracle?
10:57
Ok, me parece bien así como lo tienes. Igual entonces deja nombre_puesto como FK en instalación, ya que es PK de la tabla de puesto de trabajo
Sucede que no suelo usar PK compuestas por columnas, prefiero usar una sola columna como PK y crear índices compuestos.
Es cuestión de gustos, tu forma de hacerlo no está mal, tal vez la mía si lo es. XDDD
Osea que solo utilizas una columna de la tabla como PK?
Si necesitas dos uno de ellos lo pones como unique?
@Fernando siempre, y es la de id, sea autonumérico o no.
Pero por ejemplo como controlas que no se repita un atributo con PK el id?
Por ejemplo nombre de usuario de stackoverflow tienen que ser unicos
@Fernando PK debe ser UNIQUE, y un campo puede ser UNIQUE sin ser PK
> A PRIMARY KEY constraint automatically has a UNIQUE constraint.
> However, you can have many UNIQUE constraints per table, but only one PRIMARY KEY constraint per table.
¿Entiendes el propósito de PK y el de UNIQUE como restricciones diferentes?
clave unica y varios uniques
Para el ejemplo ese de stackoverflow
id es PK y nombre es UNIQUE
11:06
No sé como son las tablas de usuarios de SOes, pero imagino que usan una PK generada por el Servidor (imagino que autonumérica), y luego una restricción sobre el email (UNIQUE), además han de tener un UNIQUE sobre el campo alias, y seguramente crean un índice a partir de estas 3 columnas. Es lo que se me ocurre.
> Indexes are used to retrieve data from the database more quickly than otherwise. The users cannot see the indexes, they are just used to speed up searches/queries.
Puedes tener un índice sobre columnas cuyos valores se repiten, lo siguiente es sintaxis de MySQL:
> CREATE INDEX index_name
ON table_name (column1, column2, ...);
Bueno era un ejemplo, entonces el email y el alias UNIQUE y el id PK
O puedes tener índices sobre columnas cuyos valores son todos UNIQUE
> CREATE UNIQUE INDEX index_name
ON table_name (column1, column2, ...);
@Fernando sip
Tiene sentido. Busqué información de diferencias entre ambos ayer y no me encontré con ningún ejemplo
Si elimino un empleado, toda la informacion que tenga de examenes, puestos de trabajo y demas se elimina en cascada siempre que tenga FK en otras tablas
Si, tiene sentido ya que para que iba a querer acceder a un examen o donde trabajo cuando ya no "pertenece a la empresa" por ejemplo
Una cosa que aprendí hace tiempo, es que usar varias columnas como PK era poco eficiente en el sentido del espacio asignado en memoria, y además podrían darse algunos otros problemas, relacionados con el incremento secuencial del campo id. Es por eso que prefiero usar una sola columna como PK, y establecer restricciones de UNIQUE a las columnas adecuadas, además de asegurarme de crear los índices apropiados.
Pero existen casos en los que la opción de usar más de una columna como PK es totalmente válido.
Esto es lo que importa:
> In general I use this example as illustration no recommendations are good for every case and you need to check what is important in your case rather than accepting general recommendations without giving much thought on which assumptions they are based.
> you need to check what is important in your case rather than accepting general recommendations
Lo importante es que comprendas las diferencias en cada caso y así puedas tomar una decisión de acuerdo a tu necesidad particular.
11:25
En casos de algo empresarial que tengas que realizar búsquedas y que se tengan un montón de elementos puede afectar pero algo académico con menos de 10 instancias de prueba yo creo que están a la par
11:40
@Fernando exacto
 
1 hour later…
12:46
@LucasDamian Sí, pero lleva así un par de semanas. Entretanto he descubierto otro que hace (casi) lo mismo: localhost.run
La diferencia es que serveo se las apañaba para darte la misma url pública cada vez que lo ejecutaras, mientras que localhost.run te da una url diferente cada vez
@abulafia vaya, cosas que uno se entera que existen.
Y llevo 2 respuestas de backend usando node, y cada vez refuerzo conocimientos básicos. Es lo que me motiva a responder
13:25
Hola :D. Quiero hacer el efecto del siguiente gif: giphy.com/gifs/UrzW6SE6P8mtNJMDuH. Tengo que hacer una clase JS con un evento de mouseEnter y otro de mouseLeave. El problema es que no como hacer para tener siempre el tamaño de la imagen para hacer el aumento o la disminucion. Sin tener que empezar desde un tamaño fijo, si no constante para que haga el efecto que se ve en el GIF
Estoy buscando en alguna web a ver si encuentro algo parecido que lo explique para JavaScript
13:41
@Sqoaz para hacer eso ni siquiera necesitas js. Puedes hacerlo con CSS
@blonfu lo suponía, pero me lo exigen con JS. Voy a ver si eso que me has pasado me sirve de ayuda. Muchas gracias :D muy amable
si es un ejercicio que debes hacer con js es otro tema
14:20
@blonfu, qué hace un Ajo por este yermo chat un día domingo?
pues me estoy poniendo al día con js y vue y paso mas tiempo en el PC los fines de semana
14:32
@blonfu pues yo que tu me daría prisa, no te vaya a suceder como a mi. Que empecé un proyecto con Angular 4 y cuando quise hacer el deploy ya iban por el 6. Los bárbaros estos no paran. Y ya van por el 9.
@MauricioContreras sí, el frontend cambia demasiado rápido
malditos frameworks JS
14:51
@blonfu por eso me gusta más el backend. Va a un ritmo más pausado.
 
3 hours later…
18:06
Y se acaba el fin de semana. :(

« first day (1486 days earlier)      last day (1919 days later) »