我有一个自由 Web 应用程序,可让用户注册活动。在我的数据库中,我有一个 t_events_applicants 表,其中包含 t_events_applications.user_id 列,外键约束链接到 t_users.user_id 列。所以这意味着只有注册了我的 Web 应用程序的用户才能注册我的 Web 应用程序的事件。
我的客户现在希望允许未注册用户,即在我的 t_user 表中没有条目的用户注册事件。这些非注册用户只需要提供他们的姓名和电子邮件地址即可注册活动。
我应该创建一个包含列名称和电子邮件的 t_temporary_user 表,然后删除 t_events_applicants.user_id fk 约束吗?或者我应该将未注册的用户添加到 t_user 表中,然后添加一个名为 t_user.type 的列,其中类型可以是“已注册”或“未注册”?
我如何决定采用哪种方法?
很多时候,我对任何一种方法都犹豫不决。我问自己,“如果以后允许一个临时用户成为一个完全注册的用户怎么办?那么也许我应该只有一个 t_user 表。但是我也不觉得存储很多临时用户好在 t_user 中。”