Putting foreign keys of several tables into the same column I've never come across this situation, not sure how to go about it. 

Let's say I have a table Portfolio. I also have two tables: Asset 1, and Asset 2. I need to create a bridge between Portfolio and the Asset tables. A portfolio can have either Asset 1, or Asset 2, or both, or none.



Can I do something like the bridge table in the image above, i.e. where the bridge table (example below) would contain in the same column, the foreign keys to two different tables
-- Asset AST of asset type ATYP exists.
--
asset {AST, ATYP}
   PK {AST}
   SK {AST, ATYP}

CHECK ( ATYP in ('A', 'B') )


-- Asset AST, of asset type "A" exists.
--
asset_a {AST, ATYP}
     PK {AST}

FK {AST, ATYP} REFERENCES asset {AST, ATYP}

CHECK (ATYP = 'A')


-- Asset AST, of asset type "B" exists.
--
asset_b {AST, ATYP}
     PK {AST}

FK {AST, ATYP} REFERENCES asset {AST, ATYP}

CHECK (ATYP = 'B')


-- Portfolio PTF exists.
--
portfolio {PTF}
       PK {PTF}


-- Portfolio PTF contains asset AST.
--
portfolio_asset {PTF, AST}
             PK {PTF, AST}

FK1 {PTF} REFERENCES portfolio {PTF}
FK2 {AST} REFERENCES asset     {AST}


Note:

All attributes (columns) NOT NULL

PK = Primary Key
AK = Alternate Key   (Unique)
SK = Proper Superkey (Unique)
FK = Foreign Key