PersistedModel关系名称可以与属性名称相同吗?

时间:2017-01-09 20:37:24

标签: loopbackjs

Loopback documentation关系中的名称总是与存储它们的属性不同。例如:

import matplotlib.pyplot as plt
from  matplotlib import ticker
import math

test_file = [[2000, 3.8], [2001, -2.4], [2002, 5.8], [2003, -10.5], [2004, 2.1], [2005, 2.1], [2006, 6.9], [2007, -3.9]]
year   = [ i[0] for i in test_file]
value  = [ i[1] for i in test_file]
x_low  = min (year)
x_high = max(year)

y_low = float(math.floor(min(value)))
y_high = float(math.ceil(max(value)))

plt.xlabel('Year')
plt.ylabel('Value')
plt.title('Year and Value')


plt.plot(year ,value, marker="o", color="black", markeredgecolor="black")
plt.axis([x_low , x_high, y_low, y_high])

fmt=ticker.ScalarFormatter(useOffset=False)
fmt.set_scientific(False)
ax=plt.gca()
ax.xaxis.set_major_formatter(fmt)

plt.show()

请注意,在这种情况下,{ "name": "Customer", "base": "PersistedModel", "idInjection": true, "properties": { "name": { "type": "string" } }, "relations": { "address": { "type": "embedsOne", "model": "Address", "property": "billingAddress", "options": { "validate": true, "forceId": false } } ... } 关系的属性为address。当我们使用billingAddress的属性时,事情似乎就会破裂。

有时难以想出一个任意形容词来支持该属性。例如,假设关系是已经称为address而不是BillingAddress的模型。想要命名关系和属性Address

是很自然的

例如:

billingAddress

你如何在Loopback中处理这种情况?

1 个答案:

答案 0 :(得分:1)

对于目前的环回状态,我认为这是一个坏主意。我尝试了几次不同类型的关系,原因与你提出的相同,在大多数情况下,如果它有效,它会破坏一些东西。看一下文档和环回,我可以看出关系的设计方式是关系名称和属性必须不同,即使它起作用,它可能会在将来中断。

对于这些事情,我会在关系名称中添加一个后缀,例如billingAddressDetailsbillingAddressRelation

同时您也可以在github中打开一个问题,但我认为将来会保持相同的状态。