dm_enum_fk_candidates | R Documentation |
Determine which columns would be good candidates to be used as foreign keys of a table,
to reference the primary key column of another table of the dm
object.
dm_enum_fk_candidates(dm, table, ref_table, ...)
enum_fk_candidates(dm_zoomed, ref_table, ...)
dm |
A |
table |
The table whose columns should be tested for suitability as foreign keys. |
ref_table |
A table with a primary key. |
... |
These dots are for future extensions and must be empty. |
dm_zoomed |
A |
dm_enum_fk_candidates()
first checks if ref_table
has a primary key set,
if not, an error is thrown.
If ref_table
does have a primary key, then a join operation will be tried using
that key as the by
argument of join() to match it to each column of table
.
Attempting to join incompatible columns triggers an error.
The outcome of the join operation determines the value of the why
column in the result:
an empty value for a column of table
that is a suitable foreign key candidate
the count and percentage of missing matches for a column that is not suitable
the error message triggered for unsuitable candidates that may include the types of mismatched columns
enum_fk_candidates()
works like dm_enum_fk_candidates()
with the zoomed table as table
.
A tibble with the following columns:
columns
columns of table
,
candidate
boolean: are these columns a candidate for a foreign key,
why
if not a candidate for a foreign key, explanation for for this.
These functions are marked "experimental" because we are not yet sure about
the interface, in particular if we need both dm_enum...()
and enum...()
variants.
Changing the interface later seems harmless because these functions are
most likely used interactively.
Other foreign key functions:
dm_add_fk()
,
dm_get_all_fks()
,
dm_rm_fk()
dm_nycflights13() %>%
dm_enum_fk_candidates(flights, airports)
dm_nycflights13() %>%
dm_zoom_to(flights) %>%
enum_fk_candidates(airports)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.