sql_table/
foreign_key_name.rs1use crate::table::{Table, TableColumn, Unquote};
2
3pub trait ForeignKeyName: TableColumn {
4 fn foreign_key_name<F: TableColumn>(&self, fcol: F) -> String {
5 let q = if !Self::QUOTE.is_empty() {
6 Self::QUOTE
7 } else if !Self::Table::QUOTE.is_empty() {
8 Self::Table::QUOTE
9 } else if !F::QUOTE.is_empty() {
10 F::QUOTE
11 } else {
12 F::Table::QUOTE
13 };
14 format!(
15 "{q}fk_{}_{}_{}_{}{q}",
16 Self::TABLE.unquoted(),
17 self.unquoted(),
18 F::TABLE.unquoted(),
19 fcol.unquoted()
20 )
21 }
22}
23
24impl<C> ForeignKeyName for C where C: TableColumn {}