[précédent]
Tables avancées
Venus permet de définir des compléments d’information sur les tables que vous voulez créer comme le moteur
utilisé, l’auto-increment de départ et le charset par défaut de la table. Voici un exemple de table avec ce type
de définition :
"board": {
"fields": {
"id": {
"type": "int",
"key": "primary",
"null": false,
"unsigned": true,
"autoincrement": true
},
"name": {
"type": "varchar",
"value": "50",
"null": false
},
"id_role": {
"type": "int",
"value": "10",
"null": false,
"join": "role",
"join_by_field": "id",
"join_delete": "cascade",
"join_update": "cascade",
"constraint": "role_fk"
},
"id_user": {
"type": "int",
"value": "10",
"null": false,
"join": "user",
"join_by_field": "id",
"join_delete": "cascade",
"join_update": "cascade",
"constraint": "user_fk"
}
},
"engine": "InnoDB",
"auto_increment": 3,
"default_charset": "utf8"
}
Venus permet de définir des index de deux façons différentes (soit groupé, soit directement sur les champs en
question). On ne pourra créer des index multiple que dans la première façon de faire en revanche. Voici deux
exemples de table avec ce type de définition :
"user": {
"fields": {
"id": {
"type": "int",
"key": "primary",
"null": false,
"unsigned": true,
"autoincrement": true
},
"id_team": {
"type": "int",
"null": false,
"unsigned": true
}
},
"index": [
"id_team_name_index": ["id_team"]
],
"engine": "InnoDB",
"auto_increment": 1,
"default_charset": "utf8"
},
(ou)
"user": {
"fields": {
"id": {
"type": "int",
"key": "primary",
"null": false,
"unsigned": true,
"autoincrement": true
},
"id_team": {
"type": "int",
"null": false,
"unsigned": true,
"key": “index”
}
},
"engine": "InnoDB",
"auto_increment": 1,
"default_charset": "utf8"
},
Attila permet de définir des champs uniques de deux façons différentes (soit groupé, soit directement sur les
champs en question). On ne pourra créer des champs uniques multiples que dans la première façon de faire en
revanche. Voici deux exemples de table avec ce type de définition :
"user": {
"fields": {
"id": {
"type": "int",
"key": "primary",
"null": false,
"unsigned": true,
"autoincrement": true
},
"id_team": {
"type": "int",
"null": false,
"unsigned": true
}
},
"unique": [
"id_team_name_index": ["id_team"]
],
"engine": "InnoDB",
"auto_increment": 1,
"default_charset": "utf8"
},
(ou)
"user": {
"fields": {
"id": {
"type": "int",
"key": "primary",
"null": false,
"unsigned": true,
"autoincrement": true
},
"id_team": {
"type": "int",
"null": false,
"unsigned": true,
"key": “unique”
}
},
"engine": "InnoDB",
"auto_increment": 1,
"default_charset": "utf8"
},
[suivant]