mysql - 这个数据库规范化是否正确

标签 mysql mysql-workbench database-normalization

我有包含 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/

相关文章:

mysql - 在mysql中使用存储过程插入日期维度日期时出错

php - MYSQL/PHP 基于另一个表中的文本片段的联接

java - 使用 JDBC 写入和读回 MySQL DATE 时毫秒值之间的差异

mysql - mysql数据库高效读写

mysql - 对于 BCNF 来说,候选关键决定因素是否足够好?

php - PHP和MySQL登录查询

mysql - 如何解决这个mysql唯一id提供奇数的问题?

python - MySQL On Update 未触发 Django/TastyPie REST API

mysql group by with having

etl - Talend 将平面文件规范化为关系数据库表