Bonjour,
j'espère ne pas me tromper en postant sur ce forum, alors voila j'utilise MySQL depuis un moment mais sans la partie relationnelle (je favorisais 4D que je maitrisais mieux pour cela) mais depuis peu j'ai décidé de m'intéresser à Symfony (oui toujours pas de rapport avec ce forum) évidemment je suis le tuto jobeet et là je me retrouve avec un fichier YAML de création de bases de données SQL (MySQL pour l'exemple) qui utilise des relations.
Alors ma question n'est pas la compréhension du YAML mais les relations créées à partir de celui-ci dans la partie "JobeetAffiliate", autant pour la relation "JobeetJob" j'ai assimilé autant pour les 2 suivantes je suis perdu notamment avec l'utilisation des attributs "class" et "refClass".
Quelqu'un pourrait-il m'expliquer le pourquoi du comment de cela et si jamais je n'ai pas posté dans le bon forum éventuellement m'aiguiller.

Merci

Voici le code (en gras ce qui me pose problème) :
Le lien vers le site source
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# config/doctrine/schema.yml
JobeetCategory:
    actAs: { Timestampable: ~ }
    columns:
        name: { type: string(255), notnull:true, unique: true }
        
JobeetJob:
    actAs: { Timestampable: ~ }
    columns:
        category_id:    { type: integer, notnull: true }
        type:           { type: string(255) }
        company:        { type: string(255), notnull: true }
        logo:           { type: string(255) }
        url:            { type: string(255) }
        position:       { type: string(255), notnull: true }
        location:       { type: string(255), notnull: true }
        description:    { type: string(4000), notnull: true }
        how_to_apply:   { type: string(4000), notnull: true }
        token:          { type: string(255), notnull: true, unique: true }
        is_public:      { type: boolean, notnull: true, default: 1 }
        is_activated:   { type: boolean, notnull: true, default: 0 }
        email:          { type: string(255), notnull: true }
        expires_at:     { type: timestamp, notnull: true }
    relations:
        JobeetCategory: { onDelete: CASCADE, local: category_id, foreign: id, foreignAlias: JobeetJobs }
        
JobeetAffiliate:
    actAs: { Timestampable: ~ }
    columns:
        url:        { type: string(255), notnull: true }
        email:      { type: string(255), notnull: true }
        token:      { type: string(255), notnull: true }
        is_active:  { type: boolean, notnull: true, default: 0 }
    relations:
        class:          JobeetCategory
        refClass:       JobeetCategoryAffiliate
        local:          affiliate_id
        foreign:        category_id
        foreignAlias:   JobeetAffiliates
            
JobeetCategoryAffiliate:
    columns:
        category_id:    { type: integer, primary: true }
        affiliate_id:   { type: integer, primary: true }
    relations:
        JobeetCategory: { onDelete: CASCADE, local: category_id, foreign: id }
        JobeetAffiliate: { onDelete: CASCADE, local: affiliate_id, foreign: id }