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

0007 consejo para_futuros_instructores_genexus

  • Upload
    genexus

  • View
    660

  • Download
    1

Embed Size (px)

Citation preview

Consejos para futuros

instructores

A/S Maia Shuster

[email protected]

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

Errores comunes:

• Alumnos que creen que con solo definir esta

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

(A1*A2

(B1*B2)

Errores comunes:

• Alumnos que no terminan de entender diferencia:

(A1*A2

(B1*B2)

(A1*A2

(B1*B2)

+

B1*B2

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

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

Propuesta para enseñar fácil este tema:

ENTERPRISE #1 ENTERPRISE #2

PROVIDER PRODUCTPROVIDER PRODUCT

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*

PROVIDER PRODUCT

ENTERPRISE #1

ProductId* ProductName

ProviderId* ProviderName

ProviderId* ProductId*

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

ENTERPRISE #2

PROVIDER PRODUCT

2 ALTERNATIVAS DE DISEÑO DIFERENTES

GENERAN TABLAS FÍSICAS DIFERENTES

ENTERPRISE #2

PROVIDER PRODUCT

ProviderId*ProviderName

ProductId*ProductNameProviderIdProviderName

ALTERNATIVA #1:

CustomerId*CustomerName

InvoiceId*InvoiceDate….CustomerIdCustomerName

ENTERPRISE #2

PROVIDER PRODUCT

ProviderId*ProviderName

ProductId*ProductNameProviderIdProviderName

ALTERNATIVA #1:

ProviderId*ProviderNameProductIdProductName

ProductId*ProductName

PROVIDER PRODUCT

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

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 …

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

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

ENTERPRISE #2

PROVIDER PRODUCT

ProviderId*ProviderName(ProductId*ProductName)

ProviderId*ProviderName

ProductId*ProductNameProviderIdProviderName

¿ ALTERNATIVA #2 ?¿ ALTERNATIVA #1 ?

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

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…

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

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

REGLAS CON EVENTO DE DISPARO (ON …. )

INTERACTIVAMENTE

REGLAS SIN EVENTO DE DISPARO

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

Algunos errores comunes:

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

… On BeforeComplete?

No, ya es tarde..

Algunos errores comunes:

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

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