我目前正在为客户订单开发一个基本数据库。我的问题是,一个表中的字段(称为EquipmentPerOption)与另一个表(Equipment备添加一条记录应向EquipmentPerOption中添加一个具有新记录名称的新列。
例如:
**Equipment Table**
Equipment Price
Hose $1.00
Shovel $2.00
Hoe $3.00
**Equipment per Option Table**
OrderOption Hose Shovel Hoe
1 1 0 2
2 3 2 1
3 0 1 3
4 1 1 1
因此,基本上,我现在在菜单上有一个按钮,它将带我进入设备的添加新记录屏幕。如何使其在添加完设备的新记录后作为新列出现在EquipmentPerOption表中?理想情况下:
OrderOption Hose Shovel Hoe (New Equipment)
1 1 0 2 0
2 3 2 1 0
3 0 1 3 0
4 1 1 1 0
我一直在摆弄SQL,并将其作为查询的SQL代码,该查询将在单击设备窗体底部的"检查"按钮后运行。(显然,它会在运行查询之前保存记录)
ALTER TABLE EquipmentPerOption
Add
SELECT TOP (1) *
FROM
( SELECT TOP (1) *
FROM Equipment
ORDER BY created_date DESC) Short Interger
所以我的问题是为什么这个代码是错误的?我该如何修复它以达到预期的结果?或者我设置的数据库错误了,应该用不同的表结构重新开始吗?
如果您发现自己必须添加列才能处理简单的事务,那么这表明数据库设计缺少了一些东西。
给定您的设备表:
Equipment Table
Id Equipment Price
1 Hose $1.00
2 Shovel $2.00
3 Hoe $3.00
一捆这样的东西会有一个名字,可能还有一个价格:
EquipmentBundle
Id Name Price
1 Hoe And Hose ...
2 H-S-H Pkg ...
然后是一个将某些设备记录与给定捆绑包关联的表:
EquipmentBundleItems
Id EquipmentId Quantity
1 1 2 ; Bundle 1 has 2 hoses
1 3 1 ; and 1 hoe
2 1 3 ; Bundle 2 has 3 hoses
2 2 2 ; and 2 shovels
2 3 1 ; and 1 hoe
假设所有当前设备都已经在设备项表中,创建新的Bundle只是创建一个新的EquipmentBundle
记录并通过EquipmentBundleItems
表将相关项与其关联。