dm_enum_fk_candidates {dm} | R Documentation |
Foreign key candidates
Description
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.
Usage
dm_enum_fk_candidates(dm, table, ref_table, ...)
enum_fk_candidates(dm_zoomed, ref_table, ...)
Arguments
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 |
Details
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 candidatethe 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
.
Value
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.
Life cycle
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.
See Also
Other foreign key functions:
dm_add_fk()
,
dm_get_all_fks()
,
dm_rm_fk()
Examples
dm_nycflights13() %>%
dm_enum_fk_candidates(flights, airports)
dm_nycflights13() %>%
dm_zoom_to(flights) %>%
enum_fk_candidates(airports)