一个数据库设计的问题

koalacsdn 2007-12-06 09:39:17
要写一个小的进销存,以前也写过,但总觉得数据库不合理,所以问问大家是怎么做的
表1。产品
ID
编号
名称
规格
单位
价格
……
表2。销售单
ID
时间
人员号
机器号
……
表3。销售详细
ID
销售单ID
产品ID
数量
单价
……
-------------------------------
问题在于,表3中要不要加“产品名称”字段,如果不加,对表1中的数据就不能删除
请问大家都是怎么设计的

...全文
76 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
koalacsdn 2007-12-06
  • 打赏
  • 举报
回复
好像给我说胡涂了,告诉大家怎么设计的就行
中国风 2007-12-06
  • 打赏
  • 举报
回复

--表存在时,增加..
alter table table3 add constraint FK_table3 foreign key references Table1(ID) ON DELETE CASCADE

---列子
create table Table1(ID int primary key)
-----
create table Table3(ID int foreign key references Table1(ID) ON DELETE CASCADE)
中国风 2007-12-06
  • 打赏
  • 举报
回复
问题在于,表3中要不要加“产品名称”字段,如果不加,对表1中的数据就不能删除
请问大家都是怎么设计的
------------
不加,表3用ID数据库的性能好..
在表1创级联删除

create table Table1(ID int primary key)
-----
create table Table3(ID int foreign key references T(ID) ON DELETE CASCADE)
utpcb 2007-12-06
  • 打赏
  • 举报
回复
销售详单你不就记录了价格吗? 如果你有主档和详档的话建议 主档记录一个总计的金额 (主档中你可能对应几个详档)
详档记录价格 数量 还有一个冗余字段 就是一个销售单的 总金额 及数量乘单价! 这样避免以后查询的时候还要计算!
javatemptation 2007-12-06
  • 打赏
  • 举报
回复
随便写写,请高手指点

表1。产品
ID
编号
名称
规格
单位
价格 <--- 变化的值,在销售明细表中改,这个表都是固定的字段
……
表2。销售单
ID
时间
人员号
机器号
……
表3。销售详细
ID
销售单ID
产品ID
数量
单价
……
koalacsdn 2007-12-06
  • 打赏
  • 举报
回复
谢谢kelph和友第,我想问一下友第我如何定价啊,也就是“销售”中的价格从哪个表调啊
utpcb 2007-12-06
  • 打赏
  • 举报
回复
哈哈你的 表1为什么要单价呢?你那个基础表 应该记录一些不变的属性量, 你那个销售详单 已经有价格了哦!
kelph 2007-12-06
  • 打赏
  • 举报
回复
加不加最好也不要对表1的数据删除。
对于业务行为来说,有意义的不仅仅是名称。

对于基础表来说,已被业务单据使用过的数据不要删除,可以停用或废弃

27,582

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧