ਇੱਕ ਵਧੀਆ schema client-driven, edges 'ਤੇ nullable-by-default, ਅਤੇ versions ਤੋਂ ਬਿਨਾਂ evolvable ਹੁੰਦਾ ਹੈ। ਇਹ domain ਨੂੰ ਉਹਨਾਂ ਸ਼ਬਦਾਂ ਵਿੱਚ model ਕਰਦਾ ਹੈ ਜੋ clients ਅਸਲ ਵਿੱਚ ਵਰਤਦੇ ਹਨ, ਤੁਹਾਡੇ database tables ਵਿੱਚ ਨਹੀਂ।
Nullability
ਇੱਕ field ਨੂੰ ਸਿਰਫ਼ ਉਦੋਂ non-null (!) ਬਣਾਓ ਜਦੋਂ ਤੁਸੀਂ ਇਸਨੂੰ ਵਾਪਸ ਕਰ ਸਕਦੇ ਹੋ। ਦੀ ਬਹੁਤ ਜ਼ਿਆਦਾ ਵਰਤੋਂ ਇੱਕ ਜਾਲ ਹੈ: ਜੇ ਇੱਕ non-null field error ਕਰਦੀ ਹੈ, ਤਾਂ ਇਹ ਆਪਣੇ ਪੂਰੇ parent object ਨੂੰ null ਕਰ ਦਿੰਦੀ ਹੈ, ਇੱਕ ਛੋਟੀ ਅਸਫ਼ਲਤਾ ਨੂੰ ਇੱਕ ਵੱਡੇ ਖਾਲੀ ਵਿੱਚ ਬਦਲ ਦਿੰਦੀ ਹੈ। ਕਿਸੇ ਵੀ ਚੀਜ਼ ਲਈ ਜੋ ਇੱਕ downstream service 'ਤੇ ਨਿਰਭਰ ਕਰਦੀ ਹੈ, nullable ਨੂੰ ਤਰਜੀਹ ਦਿਓ।
