我有包含 payment/paymentinfo 和 userinfo 的付款表, 我通过以下方式对它们进行标准化:
1NF 付款:
付款(付款 ID、类(class) ID、用户 ID、付款选项、金额、付款日期)
2NF:
付款信息(付款 ID、付款选项、金额、类(class) ID)
付费类(class)信息(类(class) ID、类(class)持续时间、付款 ID)
Payeeuserinfo(付款 ID、用户 ID、类(class) ID)
付款的Paymentid-PK 类(class) ID 是外键和主键
最佳答案
我假设对于每笔付款, paymentid 都是不同的,即使是同一门类(class)(当 2 个不同的学生申请同一门类(class)时)或当同一用户进行 2 次付款(当同一用户支付 2 个不同类(class)时)。
这意味着在 paymentid 中是候选键,并且由于候选键中只有一个属性,这意味着不存在部分功能依赖,因此您的所有关系都在 2NF 中。
关于mysql - 这个数据库规范化是否正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50601003/