Top Banner
Consejos para futuros instructores A/S Maia Shuster [email protected]
34

0007 consejo para_futuros_instructores_genexus

Jul 14, 2015

Download

Documents

GeneXus
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: 0007 consejo para_futuros_instructores_genexus

Consejos para futuros

instructores

A/S Maia Shuster

[email protected]

Page 2: 0007 consejo para_futuros_instructores_genexus

Aportes útiles para la hora de dictar

sus cursos GeneXus

Tips para enseñar fácil

Errores más comunes que cometen los

alumnos… y recomendaciones!

Sugerencias

Page 3: 0007 consejo para_futuros_instructores_genexus
Page 4: 0007 consejo para_futuros_instructores_genexus

Errores comunes:

• Alumnos que creen que con solo definir esta

trn, están modelando una relación M-N:

(A1*A2

(B1*B2)

Page 5: 0007 consejo para_futuros_instructores_genexus

Errores comunes:

• Alumnos que no terminan de entender diferencia:

(A1*A2

(B1*B2)

(A1*A2

(B1*B2)

+

B1*B2

Page 6: 0007 consejo para_futuros_instructores_genexus

Errores comunes:

• Alumnos que definen transacciones de más:

Se crean tablas físicas de más

Se almacenan datos redundantes

Quedan definidas complejidades innecesarias

Page 7: 0007 consejo para_futuros_instructores_genexus

Errores comunes:

• Alumnos que definen componentes de más en

las claves

• Alumnos que no tienen fijados ciertos

conocimientos puntuales, que les serían de

gran ayuda

Page 8: 0007 consejo para_futuros_instructores_genexus

Propuesta para enseñar fácil este tema:

ENTERPRISE #1 ENTERPRISE #2

PROVIDER PRODUCTPROVIDER PRODUCT

Page 9: 0007 consejo para_futuros_instructores_genexus

PROVIDER PRODUCT

ENTERPRISE #1

ProductId*ProductName

ProviderId*ProviderName

(ProductId*ProductName)

ProductId*ProductName

(ProviderId* ProviderName)

ProviderId*ProviderName

ProductId*ProductName

(ProviderId* ProviderName)

ProviderId*ProviderName

(ProductId* ProductName)

ProductId*ProductName

ProviderId*ProviderName

ProviderId*ProductId*

Page 10: 0007 consejo para_futuros_instructores_genexus

PROVIDER PRODUCT

ENTERPRISE #1

ProductId* ProductName

ProviderId* ProviderName

ProviderId* ProductId*

Page 11: 0007 consejo para_futuros_instructores_genexus

Volviendo a esta duda de los alumnos…

¿ Con solo definir esta trn, están modelando una

relación M-N ?

(A1*A2

(B1*B2)

NO

Page 12: 0007 consejo para_futuros_instructores_genexus

ENTERPRISE #2

PROVIDER PRODUCT

2 ALTERNATIVAS DE DISEÑO DIFERENTES

GENERAN TABLAS FÍSICAS DIFERENTES

Page 13: 0007 consejo para_futuros_instructores_genexus

ENTERPRISE #2

PROVIDER PRODUCT

ProviderId*ProviderName

ProductId*ProductNameProviderIdProviderName

ALTERNATIVA #1:

CustomerId*CustomerName

InvoiceId*InvoiceDate….CustomerIdCustomerName

Page 14: 0007 consejo para_futuros_instructores_genexus

ENTERPRISE #2

PROVIDER PRODUCT

ProviderId*ProviderName

ProductId*ProductNameProviderIdProviderName

ALTERNATIVA #1:

ProviderId*ProviderNameProductIdProductName

ProductId*ProductName

PROVIDER PRODUCT

Page 15: 0007 consejo para_futuros_instructores_genexus

ENTERPRISE #2

PROVIDER PRODUCT

ProviderId*ProviderName(ProductId*ProductName)

ALTERNATIVA #2:

ProviderId*ProviderName

ProductId*ProductNameProviderIdProviderName

ProviderId* ProviderName

ProviderId* ProductId* ProductName

ProviderId* ProviderName

ProductId* ProductName ProviderId

ALTERNATIVA #1:

Nulls=Yes

Page 16: 0007 consejo para_futuros_instructores_genexus

ENTERPRISE #2

PROVIDER PRODUCT

ProviderId*ProviderName(ProductId*ProductName)

ALTERNATIVA #2:

ProviderId* ProviderName

1 Peter Smith

2 Susan Brown

ProviderId* ProductId* ProductName

1 1 Coke Zero

1 2 …

2 1 Budweiser Beer

2 2 …

Page 17: 0007 consejo para_futuros_instructores_genexus

ENTERPRISE #2

PROVIDER PRODUCT

ProviderId*ProviderName(ProductId*ProductName)

¿ ALTERNATIVA #2 ?

ProviderId*ProviderName

ProductId*ProductNameProviderIdProviderName

¿ ALTERNATIVA #1 ?

¿Cómo elegimos cuál?

Dependerá de la realidad a modelar…

CustomerId*CustomerName(InvoiceId*InvoiceDate….)

CustomerId*CustomerName

InvoiceId*InvoiceDate….CustomerIdCustomerName

CUSTOMER INVOICE

Page 18: 0007 consejo para_futuros_instructores_genexus

ENTERPRISE #2

PROVIDER PRODUCT

ProviderId*ProviderName(ProductId*ProductName)

¿ ALTERNATIVA #2 ?

ProviderId*ProviderName

ProductId*ProductNameProviderIdProviderName

¿ ALTERNATIVA #1 ?

CustomerId*CustomerName(CustomerPhoneId*CustomerPhoneNumber)

CustomerId*CustomerName

PhoneId*PhoneNumber….CustomerIdCustomerName

CUSTOMER PHONE

Page 19: 0007 consejo para_futuros_instructores_genexus

ENTERPRISE #2

PROVIDER PRODUCT

ProviderId*ProviderName(ProductId*ProductName)

ProviderId*ProviderName

ProductId*ProductNameProviderIdProviderName

¿ ALTERNATIVA #2 ?¿ ALTERNATIVA #1 ?

Page 20: 0007 consejo para_futuros_instructores_genexus

Volviendo a esta duda de los alumnos…

¿ Cuál es la diferencia .. ?

(A1*A2

(B1*B2)

(A1*A2

(B1*B2)

+

B1*B2

A B

1-N “DÉBIL”

A B

Page 21: 0007 consejo para_futuros_instructores_genexus

Veamos un error más que cometen los alumnos…

Realidad a ser descripta: Un médico en una fecha, solamente puede tener una consulta Se le asigna un consultorio para atender

DoctorId*

DoctorNameMedicalAppointmentDate*

DoctorId*

RoomId*

DoctorName

RoomDescription

RoomFloor

RoomId*

RoomDescription

RoomFloor

Solución de alumno:

• Definen claves primarias con componentes de más…

Page 22: 0007 consejo para_futuros_instructores_genexus

MedicalAppointmentDate* DoctorId* RoomId*

10/10/2010 1 1

10/10/2010 1 2

10/10/2010 1 3

Veamos un error común más…

Para que alumno visualice su error de diseño

DoctorId* DoctorName

1 Jack Miller

2 John Brown

RoomId* RoomDescription RoomFloor

1 … 1

2 … 1

3 … 2

recomendamos esquematizarle las tablas que se crean con datos

Page 23: 0007 consejo para_futuros_instructores_genexus

A raíz de lo anterior, surge también explicar…

¿Claves primarias compuestas por conjunto

de atributos que determinan unicidad?¿Claves primarias ficticias?

MedicalAppointmentDate*

DoctorId*

RoomId

DoctorName

RoomDescription

RoomFloor

MedicalAppointmentId *

MedicalAppointmentDate

DoctorId

RoomId

DoctorName

RoomDescription

RoomFloor

Page 24: 0007 consejo para_futuros_instructores_genexus
Page 25: 0007 consejo para_futuros_instructores_genexus

REGLAS CON EVENTO DE DISPARO (ON …. )

INTERACTIVAMENTE

REGLAS SIN EVENTO DE DISPARO

Page 26: 0007 consejo para_futuros_instructores_genexus

Algunos errores comunes:

¿Hay atributos disponibles para pasar por parámetro en una invocación que tiene evento de disparo “on AfterComplete”?

¿No?

¿Si?

¿De cuáles niveles?

Sí, del primer nivel

Page 27: 0007 consejo para_futuros_instructores_genexus

Algunos errores comunes:

¿Es correcto asignar valores a atributos… … On AfterComplete?

… On BeforeComplete?

No, ya es tarde..

Page 28: 0007 consejo para_futuros_instructores_genexus

Algunos errores comunes:

Definiciones de reglas que involucranatributos del 2do nivel con eventos dedisparo que no ocurren en dicho nivel

Page 29: 0007 consejo para_futuros_instructores_genexus
Page 30: 0007 consejo para_futuros_instructores_genexus

Actualización directa de la tabla extendidaEn rules de transacciones

En For each

For each de más innecesariosPara navegar tablas que están disponibles en el contexto, por el concepto de tabla extendida

Page 31: 0007 consejo para_futuros_instructores_genexus
Page 32: 0007 consejo para_futuros_instructores_genexus
Page 33: 0007 consejo para_futuros_instructores_genexus