我正在考虑在产品模块和用户模块之间进行前端沟通。产品和用户之间的关系是每个产品都有一个创建它们的用户。另一方面,每个用户都有一个由他们创建的产品列表。
我想问哪种方法最好还是你有更好的方法?
1。设计前端模块完全独立
产品型号(userId和userName是产品属性的一部分)
export class Product {
name : string;
description : string;
userName : string;
userId : string;
}
前端的ProductPage组件
@Component({
template: '<div {{product.userName}} {{product.userId}}></div>'
})
export class ProductPage extends Component {
product: Product;
}
用户模型
export class User {
name : string;
listOfProducts : string[];
}
在上面的示例中,产品和用户都没有通过模型进行通信。但是,通信是在后端完成的。
让用户了解产品信息
SELECT product.*, user.id as userId, user.name as userName
from product, user where product.user_id = user.id
2。所有模型都驻留在应用程序结构中,并相互通信。
产品型号(驻留在应用程序结构中)
export class Product {
name : string;
description : string;
user: User;
}
用户模型(驻留在应用程序结构上)
export class User {
name : string;
listOfProducts : Product[];
}
前端的产品页面组件HTML
@Component({
template: '<div {{userName}} {{userId}}></div>'
})
export class ProductPage extends Component {
userName : string;
userId : string;
}
应用程序调用产品页面组件
<product-page userName={{product.user.name}} userId={{product.user.id}}>
我个人认为第一种方法会更好,因为它使产品完全独立于用户。但是一旦我们拥有大量数据,我认为嵌套模型总是更好。第一种方法中的其他问题是我不能模块化数据库模块,因为我将数据库视为一个实体。
您认为哪一个更好?你有什么方法可以改善吗?或者你认为其他方法最好吗?