diff --git a/CHANGELOG.md b/CHANGELOG.md
index 5396ab66e672be1991be385eb072c78d33f6dc90..9a6f64b24f896c6611c66fa2068e8f33cd2bedee 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,8 @@
+1.0.2 (21/11/2024)
+------------------
+
+- [Optimisation] Table récupère maintenant la DDL depuis le fichier de ddl, et à défaut la recalcule depuis le BDD
+
 1.0.1 (19/11/2024)
 ------------------
 
diff --git a/src/Table.php b/src/Table.php
index 12861054297f88e70a2d6129f7d5af7f9e05fda5..570835d3504d7f17042371c6929f72239162dc9a 100644
--- a/src/Table.php
+++ b/src/Table.php
@@ -3,6 +3,8 @@
 namespace Unicaen\BddAdmin;
 
 
+use Unicaen\BddAdmin\Ddl\Ddl;
+
 class Table
 {
 
@@ -39,8 +41,13 @@ class Table
     public function getDdl(): array
     {
         if (empty($this->ddl)) {
-            $sTable    = $this->getBdd()->table();
-            $this->ddl = $sTable->get($this->name)[$this->name];
+            $ddlFromFile = $this->getDdlFromFile();
+            if (!empty($ddlFromFile)) {
+                $this->ddl = $ddlFromFile;
+            } else {
+                $sTable    = $this->getBdd()->table();
+                $this->ddl = $sTable->get($this->name)[$this->name];
+            }
         }
         if (!$this->ddl) {
             throw new \Exception('La DDL de la table ' . $this->name . ' n\'a pas pu être calculée');
@@ -51,6 +58,23 @@ class Table
 
 
 
+    public function getDdlFromFile(): array
+    {
+        [$schema,$name] = Util::explodedFullObjectName($this->getName());
+
+        $ddlDir   = $this->getBdd()->getOption(Bdd::OPTION_DDL . '/' . Ddl::OPTION_DIR);
+        $filename = $ddlDir . '/' . Ddl::TABLE . '/' . Util::fullObjectName($schema, $name) . '.php';
+        if (file_exists($filename)) {
+            $ddl = require $filename;
+            if (is_array($ddl) && $ddl['name'] == $name) {
+                return $ddl;
+            }
+        }
+        return [];
+    }
+
+
+
     public function setDdl(array $ddl): self
     {
         $this->ddl = $ddl;
@@ -518,7 +542,7 @@ class Table
         foreach ($data as $i => $d) {
             foreach ($d as $c => $v) {
                 if (isset($ddl['columns'][$c])) {
-                    if (null == $v){
+                    if (null == $v) {
                         continue;
                     }
                     if (isset($options['columns'][$c]['transformer'])) {