diff --git a/django/db/backends/base/schema.py b/django/db/backends/base/schema.py
index 36e7b50342..2d8a40dfc3 100644
--- a/django/db/backends/base/schema.py
+++ b/django/db/backends/base/schema.py
@@ -966,7 +966,7 @@ class BaseDatabaseSchemaEditor:
     def _create_fk_sql(self, model, field, suffix):
         from_table = model._meta.db_table
         from_column = field.column
-        to_table = field.target_field.model._meta.db_table
+        _, to_table = split_identifier(field.target_field.model._meta.db_table)
         to_column = field.target_field.column
 
         def create_fk_name(*args, **kwargs):
@@ -977,8 +977,8 @@ class BaseDatabaseSchemaEditor:
             table=Table(from_table, self.quote_name),
             name=ForeignKeyName(from_table, [from_column], to_table, [to_column], suffix, create_fk_name),
             column=Columns(from_table, [from_column], self.quote_name),
-            to_table=Table(to_table, self.quote_name),
-            to_column=Columns(to_table, [to_column], self.quote_name),
+            to_table=Table(field.target_field.model._meta.db_table, self.quote_name),
+            to_column=Columns(field.target_field.model._meta.db_table, [to_column], self.quote_name),
             deferrable=self.connection.ops.deferrable_sql(),
         )
 
diff --git a/docs/releases/1.11.9.txt b/docs/releases/1.11.9.txt
index c7cca51818..fa480d44bc 100644
--- a/docs/releases/1.11.9.txt
+++ b/docs/releases/1.11.9.txt
@@ -14,3 +14,6 @@ Bugfixes
 
 * Fixed incorrect class-based model index name generation for models with
   quoted ``db_table`` (:ticket:`28876`).
+
+* Fixed incorrect foreign key constraint name for models with quoted
+  ``db_table`` (:ticket:`28876`).
diff --git a/docs/releases/2.0.1.txt b/docs/releases/2.0.1.txt
index cc90e4ef6e..67bdc1b9a0 100644
--- a/docs/releases/2.0.1.txt
+++ b/docs/releases/2.0.1.txt
@@ -14,3 +14,6 @@ Bugfixes
 
 * Fixed incorrect class-based model index name generation for models with
   quoted ``db_table`` (:ticket:`28876`).
+
+* Fixed incorrect foreign key constraint name for models with quoted
+  ``db_table`` (:ticket:`28876`).
diff --git a/tests/schema/tests.py b/tests/schema/tests.py
index 10c8b9780b..21ab60466f 100644
--- a/tests/schema/tests.py
+++ b/tests/schema/tests.py
@@ -1914,6 +1914,28 @@ class SchemaTests(TransactionTestCase):
         with connection.schema_editor() as editor:
             editor.add_field(BookWithLongName, new_field)
 
+    @isolate_apps('schema')
+    @skipUnlessDBFeature('supports_foreign_keys')
+    def test_add_foreign_key_quoted_db_table(self):
+        class Author(Model):
+            class Meta:
+                db_table = '"table_author_double_quoted"'
+                app_label = 'schema'
+
+        class Book(Model):
+            author = ForeignKey(Author, CASCADE)
+
+            class Meta:
+                app_label = 'schema'
+
+        with connection.schema_editor() as editor:
+            editor.create_model(Author)
+            editor.create_model(Book)
+        if connection.vendor == 'mysql':
+            self.assertForeignKeyExists(Book, 'author_id', '"table_author_double_quoted"')
+        else:
+            self.assertForeignKeyExists(Book, 'author_id', 'table_author_double_quoted')
+
     def test_add_foreign_object(self):
         with connection.schema_editor() as editor:
             editor.create_model(BookForeignObj)