Flag with its table being Flags and columns being something like Id, FlaggableId, and FlaggableType (along with a few other fields holding data specific to the flag like what type of flag it is or notes on the flag). FlaggableType points to the model (table) and FlaggableId points to the row of that table.FlaggableColumn.Discriminators and TPH, TPT, and TPC. I'm a bit of a beginner in C# and .NET land and a few of the posts I found on the internet are a bit over my head.