Putting foreign keys of several tables into the same column
-- 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