我正在创建一个新的数据库,我遇到了这个问题:我有两种类型的用户可以下单:注册用户(即他们有登录名)和来宾用户(即没有登录名)。注册用户和来宾用户的数据是不同的,这就是为什么我考虑使用两个不同的表,但是订单(共享相同的工作流)都是相同的,所以我考虑只使用一个表。
我读过here和here(即使我不完全理解这个示例),我可以强制mysql规则在表中具有互斥列(在我的例子中,它们是“idguest”和“iduser”),但我不喜欢这种方法。
有更好的办法吗?
最佳答案
听起来主要是一个关系超类型/子类型问题。我已经回答了a similar question并包含了一些示例代码,您应该能够轻松地适应这些代码。(确保你读了评论。)
对您来说,稍微复杂一点的因素是,一个子类型(来宾用户)有一天可能会成为不同的子类型(注册用户)。如何处理这个问题取决于应用程序。(意思是你会知道,但可能没人会知道。)