OOP模型中用户和人之间的关联


association between User and Person in OOP model

我正在考虑OOP和DB模型中的用户和人员关系。人员是使用该应用程序的人,例如网店应用程序的购买者。要使用该应用程序,用户必须是可以登录和注销的应用程序用户。假设我有这个:

Person (id, firstname, givenname, address, phone)
User (id, e-mail, username, password)

如何将这两个实体关联起来?

用户是否应具有person_id:User (id, e-mail, username, password, PERSON_ID)

或者Person应该具有user_id:Person (id, firstname, givenname, address, phone, USER_ID)

如果我走错了方向,请告诉我。

(我将使用PHP和laravel,但这对这个问题并不那么重要)。

这取决于数据的性质。

您是否需要将用户和人员作为独立的实体?如果你有一些用户不是个人(例如,系统用户、cron用户等),那么让Person包含一个用户ID。如果你不关心这一点(例如,所有用户都是个人,句号),我会创建一个包含所有数据的表,这会更简单。

我想不出有什么情况下我想要一个包含个人ID的用户。