我正在研究货币交易平台。
发件人始终是具有特定属性的注册用户。
接收者可以是已经在平台上注册的用户(具有相同的属性)或平台外的用户(在这种情况下,他们的银行账户详细信息需要保存在不同的表中)。
我遇到的问题是有一个帮助识别接收器的外键。
首先,我知道一个外键不能引用多个表,所以我在transaction表中添加了两个可以为空的外键,并引用这两种用户类型。
这样,至少有一个外键有一个值,有助于识别哪种类型的用户是接收者。
有没有更好的方法来实现这一目标?
答案 0 :(得分:0)
更安全的方法是将用户表组合到一个表中,该表包含已注册和未注册用户的记录。然后,您的交易表将只有一个外部密钥供收件人使用。
您需要将根据用户是否注册而不同的字段分解为单独的配置文件表。 users
最终可能包含registered_profiles
和unregistered_profiles
表的双重外键。但是,这比transactions
表中的双外键更可靠,因为如果用户同时拥有这两个外键,您就知道总是喜欢注册的配置文件。
一般而言,您希望不确定性的范围尽可能地受到限制。无论收件人是注册还是未注册,交易都无关紧要 - 这只对用户有用。