我正在谷歌应用引擎上构建一个应用程序,它有三种不同类型的用户(ABC,LMN,XYZ)。
这就是我的模型的样子
User(db.Model): email = db.EmailProperty() username = db.StringProperty() password = db.StringProperty() role = db.IntegerProperty() ## role = 1 for ABC;2 for LMN;3 for XYZ ABC(User): name = db.StringProperty() isSuperHero = db.BooleanProperty() LMN(User): nickname = db.StrngProperty() profession = db.StringProperty() # some other random property XYZ(User): department = db.StringProperty() salary = db.FloatProperty()
我想提供单登录页面,其中所有三个用户都可以登录该应用。
在数据存储区中,我将有4个不同的实体User,ABC,LMN,XYZ记录
我看到有两种方法:
所以,问题归结为基本的基础:我应该在所有实体中存储冗余列还是应该在实体中存储相应用户的引用。 有人可以为这两种方法提供一些数据成本(读/写)差异的例子吗?