我有两个模型:Car(ndb.Model) 和 Branch(ndb.Model),每个模型都有一个关键方法。
@classmethod
def car_key(cls, company_name, car_registration_id):
if not (company_name.isalnum() and car_registration_id.isalnum()):
raise ValueError("Company & car_registration_id must be alphanumeric")
key_name = company_name + "-" + car_registration_id
return ndb.Key("Car", key_name)
分支键:
@classmethod
def branch_key(cls, company_name, branch_name):
if not (company_name.isalnum() and branch_name.isalnum()):
raise ValueError("Company & Branch names must be alphanumeric")
key_name = company_name + "-" + branch_name
return ndb.Key("Branch", key_name)
但是我认为这有点难看,而不是你应该如何使用密钥。
(汽车注册是汽车独有的,但有时一家公司可能会将汽车卖给另一家公司,汽车也会在分支机构之间移动)。
由于一家公司可能有许多汽车或许多分支机构,我想我不想要大型实体组,因为您每秒只能写入一次实体组。
我应该如何定义我的密钥?
例如,我正在考虑car_key = ndb.Key("Car", car_reg_id, "Company", company_name)
,因为一辆车不太可能有很多公司,所以实体组不会太大。
但是我不确定如何处理分支密钥,因为许多公司可能具有相同的分支名称,并且许多分支可能具有相同的公司。