Database design 非重复数据库设计

Database design 非重复数据库设计,database-design,relational-database,database-schema,Database Design,Relational Database,Database Schema,如果我需要保存会员购买历史记录,但又想保持我的数据库尽可能高效(第三种标准形式),我将如何避免重复数据?这就是我想到的: 粗体=主键 成员(memberID,名,姓,地址,城市,州,邮编) 历史记录(历史ID、购买、日期、金额) MemberHistory(memberID,historyID) 这是我的历史表,它本身没有任何意义,连接的表似乎有很多重复。任何人1)发现此设计存在问题,2)可以告诉我保存成员历史记录的更好方法吗?摆脱MemberHistory,就像这样 Member(member

如果我需要保存会员购买历史记录,但又想保持我的数据库尽可能高效(第三种标准形式),我将如何避免重复数据?这就是我想到的:

粗体=主键

成员(memberID,名,姓,地址,城市,州,邮编)

历史记录(历史ID、购买、日期、金额)

MemberHistory(memberIDhistoryID


这是我的历史表,它本身没有任何意义,连接的表似乎有很多重复。任何人1)发现此设计存在问题,2)可以告诉我保存成员历史记录的更好方法吗?

摆脱
MemberHistory
,就像这样

Member(memberID(PK), firstName, lastName, address, city, state, zip)

History(historyID(PK), memberID(PK/FK), purchase, date, amount)

没有多对多的关系,因此,您不需要
MemberHistory

MemberHistory.memberID可能应该直接放在您的历史记录表中,因为历史记录中的一行有一个且只有一个memberID。如果我有100或10000个客户,这会不会变得效率低下?我将用一个问题回答您的问题:您还打算如何存储它?如果你有10000个客户,每个客户有10个订单,你必须以某种方式保存这些信息;这看起来是RDBMS中最好的方法。这就是我要做的。