数据库结构.. Ugg?

时间:2011-04-18 14:15:18

标签: sql database structure

好的,所以这看起来很傻但我想确保我是对的。

我有足够简单的数据库设置:

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

我的问题

  1. 这个设置正确吗?
  2. 使用SQL,当我添加/更新客户并选择一个笔记类型(例如,技术支持)并输入该客户的注释时,我在运行insert语句时应该做什么/注意什么? ?
  3. 这是一个简单的问题,但我想确保我正确地做到这一点。

3 个答案:

答案 0 :(得分:2)

对于简单的CRM类软件,设置似乎是正确的,但如果没有完整的系统要求,我们无法回答它是否正确。

就插入而言,只要CustomerNote_Type都已存在,一切都应该没问题。一开始让一些人绊倒的一件事就是确保级联规则按照他们在外键上的要求设置。根据要求,您可能希望在删除Notes(级联删除)时删除所有Customer,或者您可能希望首先明确删除所有Notes,< em>在之前允许删除Customer(级联限制)

答案 1 :(得分:2)

您的结构是正确的,但您可能需要重新考虑您的命名方案。虽然命名方案可能有很大差异,但通常不认为使用tblTable_为所有数据库表添加前缀是一种好的做法。本文由Narayana Vyas Kondreddi撰写,似乎是最广泛接受的SQL Server命名约定指南之一:

http://vyaskn.tripod.com/object_naming.htm

以前在这个网站上也回答了SQL命名约定的问题,请参阅:

Database Naming Conventions by Microsoft?

答案 2 :(得分:1)

你的方法会奏效。有一点需要提及;如果帐号是唯一的,您不需要客户表中的ID。

这是一个简单的ERD,用于您的目的。

enter image description here