好的,所以这看起来很傻但我想确保我是对的。
我有足够简单的数据库设置:
Table_Customer
ID (PK)
Acc_number
First
Last
etc.
Table_Notes
ID (PK)
Note_Type_FK (links to Table_Note_type)
Note
Account_FK (Links to Table_Customer)
Table_Note_Type
ID (PK)
Note_Type_Name
Note_Type_Desc
Notes
适用于与该客户相关的所有注释,可用于技术支持,销售跟进等。此表的FK链接到Note_Type
,FK返回{{1} } Acc_number
。
我的问题:
这是一个简单的问题,但我想确保我正确地做到这一点。
答案 0 :(得分:2)
对于简单的CRM类软件,设置似乎是正确的,但如果没有完整的系统要求,我们无法回答它是否正确。
就插入而言,只要Customer
和Note_Type
都已存在,一切都应该没问题。一开始让一些人绊倒的一件事就是确保级联规则按照他们在外键上的要求设置。根据要求,您可能希望在删除Notes
(级联删除)时删除所有Customer
,或者您可能希望首先明确删除所有Notes
,< em>在之前允许删除Customer
(级联限制)
答案 1 :(得分:2)
您的结构是正确的,但您可能需要重新考虑您的命名方案。虽然命名方案可能有很大差异,但通常不认为使用tbl
或Table_
为所有数据库表添加前缀是一种好的做法。本文由Narayana Vyas Kondreddi撰写,似乎是最广泛接受的SQL Server命名约定指南之一:
http://vyaskn.tripod.com/object_naming.htm
以前在这个网站上也回答了SQL命名约定的问题,请参阅:
答案 2 :(得分:1)
你的方法会奏效。有一点需要提及;如果帐号是唯一的,您不需要客户表中的ID。
这是一个简单的ERD,用于您的目的。