diff --git a/src/FlagCountManager.php b/src/FlagCountManager.php
index 53c1af5..aec03a2 100644
--- a/src/FlagCountManager.php
+++ b/src/FlagCountManager.php
@@ -158,6 +158,9 @@ class FlagCountManager implements FlagCountManagerInterface, EventSubscriberInte
     $flagging = $event->getFlagging();
     $flag = $flagging->getFlag();
     $entity = $flagging->getFlaggable();
+    if (!$entity) {
+      return;
+    }
 
     $this->connection->merge('flag_counts')
       ->key([
diff --git a/src/FlaggingViewsData.php b/src/FlaggingViewsData.php
index 32719ab..6dd1835 100644
--- a/src/FlaggingViewsData.php
+++ b/src/FlaggingViewsData.php
@@ -7,6 +7,8 @@
 
 namespace Drupal\flag;
 
+use Drupal\Core\Entity\FieldableEntityInterface;
+use Drupal\flag\Entity\Flag;
 use Drupal\views\EntityViewsData;
 
 /**
@@ -53,6 +55,29 @@ class FlaggingViewsData extends EntityViewsData {
       ],
     ];
 
+    /** @var \Drupal\Core\Entity\EntityFieldManagerInterface $entity_field_manager */
+    $entity_type_manager = \Drupal::entityTypeManager();
+    foreach (Flag::loadMultiple(NULL) as $flag_id => $flag) {
+      /** @var \Drupal\flag\Entity\Flag $flag */
+      $entity_type = $entity_type_manager->getDefinition($flag->getFlaggableEntityTypeId());
+      $data['flagging']['flags_' . $flag_id]['relationship'] = [
+        'title' => $entity_type->getLabel(),
+        'help' => $this->t('The @entity_type this flagging belongs to..', array('@entity_type' => $entity_type->getLabel())),
+        'base' => $entity_type->getDataTable() ?: $entity_type->getBaseTable(),
+        'base field' => $entity_type->getKey('id'),
+        'relationship field' => 'entity_id',
+        'id' => 'standard',
+        'label' => $entity_type->getLabel(),
+        'extra' => array(
+          array(
+            'field' => 'entity_type',
+            'value' => $entity_type->id(),
+            'table' => 'flagging'
+          ),
+        ),
+      ];
+    }
+
     return $data;
   }
 
