透过一个字段来对哪个表进行操作

通过一个字段来对哪个表进行操作
A 代表一种身份
1       C   
2       D

表 E 是身份表A1的时候的扩展字段
表 E2是身份表A2的时候的扩展字段
E 与E2 完全不一样


用户B 字有个字段外键到A 如果这个字段是1 那么得从E获取数据,反之得从E2获取数据

这样的设计对吗?我操作起来感觉挺不顺的,请问有更好的解决方案吗?
------解决思路----------------------
取决于你如何使用,如果你有外部程序,那么你大可以在程序判断关联的表。如果你没有外部程序,同时数据量也不是很大,可以加个type区别就够了