Base de données
Le SQL complet de tc-divisions : 9 tables tc_div_*.
#Installation
Importe le fichier une seule fois dans la base utilisée par oxmysql (MariaDB / MySQL, utf8mb4). Il est idempotent. Les tables sont aussi créées automatiquement au démarrage de la ressource.
#Tables
| Table | Contenu |
|---|---|
tc_div_divisions | Divisions (par job) : libellé, couleur, ordre |
tc_div_members | Appartenance des personnages aux divisions |
tc_div_jobs | Réglages par job : grade de gestion, limites des coffres des patrons |
tc_div_chests | Coffres : position, capacité, objet, accès, code, entreprise gestionnaire |
tc_div_shops | Shops : position, PNJ / objet, accès, code, paiement |
tc_div_shop_entries | Articles et tenues de chaque shop |
tc_div_garages | Garages : places de sortie, rangement, préfixe de plaque, accès |
tc_div_garage_vehicles | Véhicules de service par garage : divisions, accès, grades, numéro de toit |
tc_div_logs | Journal des actions |
#SQL complet
Afficher install.sql (157 lignes)
install.sqlTélécharger
-- tc-divisions : installation (idempotent, MariaDB / MySQL, utf8mb4).
-- Les tables sont aussi créées automatiquement au démarrage de la ressource (même contenu).
-- Installation manuelle : importer ce fichier une fois dans la base utilisée par oxmysql.
-- Anciennes bases (ressource d'origine) : utiliser le fichier de migration fourni à part, AVANT le premier démarrage.
CREATE TABLE IF NOT EXISTS `tc_div_divisions` (
`id` INT NOT NULL AUTO_INCREMENT,
`job` VARCHAR(50) NOT NULL,
`label` VARCHAR(48) NOT NULL,
`color` VARCHAR(9) NOT NULL DEFAULT '#5566c1',
`sort` INT NOT NULL DEFAULT 0,
`created_by` VARCHAR(96) DEFAULT NULL,
`created_at` INT NOT NULL DEFAULT 0,
PRIMARY KEY (`id`),
KEY `idx_job` (`job`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE IF NOT EXISTS `tc_div_members` (
`identifier` VARCHAR(96) NOT NULL,
`job` VARCHAR(50) NOT NULL,
`division_id` INT NOT NULL,
`name` VARCHAR(96) DEFAULT NULL,
`assigned_by` VARCHAR(96) DEFAULT NULL,
`assigned_at` INT NOT NULL DEFAULT 0,
PRIMARY KEY (`identifier`, `job`, `division_id`),
KEY `idx_division` (`division_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE IF NOT EXISTS `tc_div_jobs` (
`job` VARCHAR(50) NOT NULL,
`manage_grade` INT DEFAULT NULL,
`chest_max` INT DEFAULT NULL,
`chest_slots` INT DEFAULT NULL,
`chest_weight` INT DEFAULT NULL,
PRIMARY KEY (`job`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE IF NOT EXISTS `tc_div_chests` (
`id` INT NOT NULL AUTO_INCREMENT,
`label` VARCHAR(64) NOT NULL,
`chest_key` VARCHAR(32) NOT NULL,
`x` DOUBLE NOT NULL,
`y` DOUBLE NOT NULL,
`z` DOUBLE NOT NULL,
`h` DOUBLE NOT NULL DEFAULT 0,
`radius` FLOAT NOT NULL DEFAULT 1.5,
`slots` INT NOT NULL DEFAULT 50,
`weight` INT NOT NULL DEFAULT 200,
`prop` VARCHAR(64) DEFAULT NULL,
`blip` TINYINT NOT NULL DEFAULT 0,
`access` LONGTEXT DEFAULT NULL,
`code` VARCHAR(16) DEFAULT NULL,
`code_mode` VARCHAR(8) NOT NULL DEFAULT 'none',
`enabled` TINYINT NOT NULL DEFAULT 1,
`owner_job` VARCHAR(50) DEFAULT NULL, -- entreprise dont le patron gère le coffre
`created_by` VARCHAR(96) DEFAULT NULL,
`created_at` INT NOT NULL DEFAULT 0,
`updated_at` INT NOT NULL DEFAULT 0,
PRIMARY KEY (`id`),
UNIQUE KEY `uniq_chest` (`chest_key`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE IF NOT EXISTS `tc_div_shops` (
`id` INT NOT NULL AUTO_INCREMENT,
`label` VARCHAR(64) NOT NULL,
`x` DOUBLE NOT NULL,
`y` DOUBLE NOT NULL,
`z` DOUBLE NOT NULL,
`h` DOUBLE NOT NULL DEFAULT 0,
`radius` FLOAT NOT NULL DEFAULT 1.5,
`prop` VARCHAR(64) DEFAULT NULL,
`ped` VARCHAR(64) DEFAULT NULL,
`blip` TINYINT NOT NULL DEFAULT 0,
`access` LONGTEXT DEFAULT NULL,
`code` VARCHAR(16) DEFAULT NULL,
`code_mode` VARCHAR(8) NOT NULL DEFAULT 'none',
`payment` VARCHAR(8) NOT NULL DEFAULT 'free',
`enabled` TINYINT NOT NULL DEFAULT 1,
`created_by` VARCHAR(96) DEFAULT NULL,
`created_at` INT NOT NULL DEFAULT 0,
`updated_at` INT NOT NULL DEFAULT 0,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE IF NOT EXISTS `tc_div_shop_entries` (
`id` INT NOT NULL AUTO_INCREMENT,
`shop_id` INT NOT NULL,
`kind` VARCHAR(8) NOT NULL DEFAULT 'item',
`item` VARCHAR(64) DEFAULT NULL,
`label` VARCHAR(64) NOT NULL,
`price` INT NOT NULL DEFAULT 0,
`quantity` INT NOT NULL DEFAULT 1,
`sex` VARCHAR(1) DEFAULT NULL,
`skin` LONGTEXT DEFAULT NULL,
`access` LONGTEXT DEFAULT NULL,
`sort` INT NOT NULL DEFAULT 0,
`enabled` TINYINT NOT NULL DEFAULT 1,
PRIMARY KEY (`id`),
KEY `idx_shop` (`shop_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE IF NOT EXISTS `tc_div_garages` (
`id` INT NOT NULL AUTO_INCREMENT,
`label` VARCHAR(64) NOT NULL,
`x` DOUBLE NOT NULL,
`y` DOUBLE NOT NULL,
`z` DOUBLE NOT NULL,
`h` DOUBLE NOT NULL DEFAULT 0,
`radius` FLOAT NOT NULL DEFAULT 1.5,
`prop` VARCHAR(64) DEFAULT NULL,
`ped` VARCHAR(64) DEFAULT NULL,
`blip` TINYINT NOT NULL DEFAULT 0,
`access` LONGTEXT DEFAULT NULL,
`code` VARCHAR(16) DEFAULT NULL,
`code_mode` VARCHAR(8) NOT NULL DEFAULT 'none',
`spawns` LONGTEXT DEFAULT NULL,
`store` LONGTEXT DEFAULT NULL,
`plate_prefix` VARCHAR(4) DEFAULT NULL,
`enabled` TINYINT NOT NULL DEFAULT 1,
`created_by` VARCHAR(96) DEFAULT NULL,
`created_at` INT NOT NULL DEFAULT 0,
`updated_at` INT NOT NULL DEFAULT 0,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE IF NOT EXISTS `tc_div_garage_vehicles` (
`id` INT NOT NULL AUTO_INCREMENT,
`garage_id` INT NOT NULL,
`model` VARCHAR(64) NOT NULL,
`label` VARCHAR(64) NOT NULL,
`props` LONGTEXT DEFAULT NULL,
`divisions` LONGTEXT DEFAULT NULL,
`shared` TINYINT NOT NULL DEFAULT 0, -- commun en plus de ses divisions
`callsign` TINYINT NOT NULL DEFAULT 0, -- chiffres du numéro de toit (0 = aucun)
`access` LONGTEXT DEFAULT NULL,
`grades` LONGTEXT DEFAULT NULL, -- { [job] = { min = grade pour le voir, all = grade qui le voit sans division } }
`sort` INT NOT NULL DEFAULT 0,
`enabled` TINYINT NOT NULL DEFAULT 1,
PRIMARY KEY (`id`),
KEY `idx_garage` (`garage_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE IF NOT EXISTS `tc_div_logs` (
`id` INT NOT NULL AUTO_INCREMENT,
`kind` VARCHAR(12) NOT NULL,
`ref_id` INT DEFAULT NULL,
`ref_label` VARCHAR(64) DEFAULT NULL,
`ident` VARCHAR(96) DEFAULT NULL,
`name` VARCHAR(96) DEFAULT NULL,
`action` VARCHAR(32) NOT NULL,
`detail` VARCHAR(255) DEFAULT NULL,
`created_at` INT NOT NULL DEFAULT 0,
PRIMARY KEY (`id`),
KEY `idx_kind` (`kind`, `ref_id`),
KEY `idx_created` (`created_at`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;Identifiants
Les colonnes identifier contiennent l'identifiant du personnage selon ton framework : identifiant Vision / ESX, citizenid sur QBCore / Qbox, licence Rockstar en standalone.