Skip to content

RelationshipOneToOne

iraichi edited this page Apr 24, 2015 · 24 revisions

How to define a "Has One" reference between models

Please refer to here for general informations about models.

If you want to define a "has one" reference between models you have to use a Reference type field.

Example of Reference in HelloKitto

# Hair.yalm
ModelName: Hair
...
Fields:
  Hair_Id: String(32) not null primary key
    IsVisible: False
    DefaultValue: %COMPACT_GUID%
.....
# Girl.yalm
ModelName: Girl
Fields:
  HairColor: Reference(Hair)
    PhysicalName: FK_GIRL_HAIR
    Fields:
      HairId:
        PhysicalName: HAIR_ID
...

Note that:

  • HairColor is the logical field name
  • the subnode PhysicalName (in this case FK_GIRL_HAIR) is the name of the reference that Kitto will use as Alias to build join in Sql command text.
  • the subnode Fields contains the field HairId that make up the key to the model Hair.

The subnode Fields must contain all fields that makes up the key to the other model. These fields only need names, as their data types and other properties are taken from the corresponding fields in the referenced model's primary key.

This is how the reference fiel is rendered in user interface: RelationshipOneToOne.png

Here is a more complex example with a multi-field key from a real-world project:

  BirthCountry: Reference(Country)
    PhysicalName: FK_EMPLOYEE_BIRTH_COUNTRY
    Fields:
      BirthCountryclass:
        PhysicalName: BIRTH_COUNTRYCLASS
      BirthCountryid:
        PhysicalName: BIRTH_COUNTRYID

Clone this wiki locally