diff --git a/contactmap.install b/contactmap.install
index c2a320e..e2958bd 100644
--- a/contactmap.install
+++ b/contactmap.install
@@ -5,6 +5,8 @@
  * Install, update and uninstall functions for the contactmap module.
  */
 
+use Drupal\Core\Database\Database;
+
 /**
  * Implements hook_install().
  */
@@ -18,3 +20,63 @@ function contactmap_install() {
     ->set('contactmapThemename', [$defaultThemeName])
     ->save();
 }
+
+/**
+ * Implements hook_schema().
+ *
+ * Defines the database tables used by this module.
+ *
+ * @see hook_schema()
+ */
+function contactmap_schema() {
+  $defaultThemeName = \Drupal::config('system.theme')->get('default');
+
+  $schema['contactmap'] = [
+    'description' => 'Stores contact map entries.',
+    'fields' => [
+      'pid' => [
+        'type' => 'serial',
+        'not null' => TRUE,
+        'description' => 'Primary Key: Unique contactmap ID.',
+      ],
+      'mapPhoneNumber' => [
+        'type' => 'varchar',
+        'length' => 10,
+        'not null' => TRUE,
+        'default' => '0000000000',
+        'description' => "Map phone number",
+      ],
+      'mapAddressContact' => [
+        'type' => 'varchar',
+        'length' => 254,
+        'not null' => TRUE,
+        'default' => 'Contact Map Address',
+        'description' => "Contact Map Address",
+      ],
+      'mapLatitude' => [
+        'type' => 'varchar',
+        'length' => 7,
+        'not null' => TRUE,
+        'default' => '20.5937',
+        'description' => "Map latitude",
+      ],
+      'mapLongitude' => [
+        'type' => 'varchar',
+        'length' => 7,
+        'not null' => TRUE,
+        'default' => '78.9629',
+        'description' => "Map longitude",
+      ],
+      'contactmapThemename' => [
+        'type' => 'array',
+        'not null' => TRUE,
+        'default' => [$defaultThemeName],
+        'description' => "Contact map Theme name",
+      ],
+    ],
+    'primary key' => ['pid'],
+    'unique keys' => [],
+  ];
+
+  return $schema;
+}
