是否违反 2NF?
is it violate 2NF?
我的table
本书
- PK ID INT
- pfK langID INT
- 标题 VARCHAR
- 说明 MEDIUMTEXT
- 发布年份 YEAR
- 章节双倍价格
- 缩略图 BLOB
在哪里
pfk - Primary-Foreign 密钥;
{ID, langID} - PK;
chaptersPrice - 本书每章的价格。示例:
BookName1:
- 章节价格=2
BookName2:
- 章节价格=3
我认为在这个table中一些属性在功能上依赖于主键(ID)的部分:
{ID} -> {发布年份}
{ID} -> {章节价格}
{ID} -> {缩略图}
我应该这样实现吗
本书
- PK bookID
- pfK langID
- 标题
- 描述
book_attrs
- PK ID
- FK bookID
- 发布年份
- 章节价格
- 缩略图
然后书和book_attrs有“one-to-many”关系
一些注意事项可能取决于您的用例/领域模型。
一本书的发行年份通常不会改变(在简单的情况下),因此它可能在 BOOK table.
中
从 'book store' 的角度来看,'price' 可能处于不同的 table,因为它会根据市场情况进行更新。
我的table
本书
- PK ID INT
- pfK langID INT
- 标题 VARCHAR
- 说明 MEDIUMTEXT
- 发布年份 YEAR
- 章节双倍价格
- 缩略图 BLOB
在哪里 pfk - Primary-Foreign 密钥;
{ID, langID} - PK;
chaptersPrice - 本书每章的价格。示例:
BookName1:
- 章节价格=2
BookName2:
- 章节价格=3
我认为在这个table中一些属性在功能上依赖于主键(ID)的部分:
{ID} -> {发布年份}
{ID} -> {章节价格}
{ID} -> {缩略图}
我应该这样实现吗
本书
- PK bookID
- pfK langID
- 标题
- 描述
book_attrs
- PK ID
- FK bookID
- 发布年份
- 章节价格
- 缩略图
然后书和book_attrs有“one-to-many”关系
一些注意事项可能取决于您的用例/领域模型。
一本书的发行年份通常不会改变(在简单的情况下),因此它可能在 BOOK table.
中从 'book store' 的角度来看,'price' 可能处于不同的 table,因为它会根据市场情况进行更新。