fn is_semi_owned(&self, tables: &[Table]) -> bool {
        let primary_and_foreign = self.primary_and_foreign_columns();
        let has_ones = self.referred_tables(tables);
        if self.primary_columns().len() != 2 {
            return false;
        }
        let mut semi_owner = 0;
        for (_, has_one) in has_ones {
            if has_one.are_these_foreign_column_refer_to_primary_of_this_table(&primary_and_foreign){
				semi_owner += 1;
			}
        }
        semi_owner > 0
    }
/// if table has 2 primary keys, 1 of the primary key is a foreign key the (parent) has_one table
///
if table has 2 primary keys, 1 of the primary key is a foreign key the (parent) has_one table
if table has 2 primary keys 1 of the primary key is a foreign key the ( parent ) has_one table
fn is_semi_owned(&self, tables: &[Table]) -> bool {
        let primary_and_foreign = self.primary_and_foreign_columns();
        let has_ones = self.referred_tables(tables);
        if self.primary_columns().len() != 2 {
            return false;
        }
        let mut semi_owner = 0;
        for (_, has_one) in has_ones {
            if has_one.are_these_foreign_column_refer_to_primary_of_this_table(&primary_and_foreign){
				semi_owner += 1;
			}
        }
        semi_owner > 0
    }
fn is_semi_owned ( & self , tables : & [ Table ] ) -> bool { let primary_and_foreign = self . primary_and_foreign_columns ( ) ; let has_ones = self . referred_tables ( tables ) ; if self . primary_columns ( ) . len ( ) != 2 { return false ; } let mut semi_owner = 0 ; for ( _ , has_one ) in has_ones { if has_one . are_these_foreign_column_refer_to_primary_of_this_table ( & primary_and_foreign ) { semi_owner += 1 ; } } semi_owner > 0 }
if table has 2 primary keys, 1 of the primary key is a foreign key the (parent) has_one table
if table has 2 primary keys 1 of the primary key is a foreign key the ( parent ) has_one table
&self
tables
&[Table]
&self
tables
&[Table]