佳礼资讯网

 找回密码
 注册

ADVERTISEMENT

查看: 1302|回复: 11

sql的问题

[复制链接]
发表于 12-3-2005 07:47 AM | 显示全部楼层 |阅读模式
我有一个inventory table,
储存了书本, 价钱,和类型。。,
我想在建立另外一个category table,
储存书本类型的id和类型。。
如果有新类型加入inventory,
那么category table就会自动update,
和category_id自动加一。。
要怎样做呢?


inventory                                      category
===========                    ==========

abc | reference book                 reference book | 1
bcd | lifestyle                            lifestyle            | 2
cd   | comic                              comic              | 3
xyz  | lifestyle
yyz  | lifestyle
回复

使用道具 举报


ADVERTISEMENT

发表于 12-3-2005 09:06 AM | 显示全部楼层
我会放两个SQL STATEMENT

SELECT * FROM CATEGORY WHERE CATEGORYID='" & yourBookcategory & "'

然后EXECUTE它,那你就可以拿到你的CATEGORY的数量

然后

set 一个 string
如:
QTY=rs.fields("yourCategoryQuantity") + 1

然后
UPDATE CATEGORY SET CategoryQuantity = '" & QTY & "' WHERE CATEGORYID='" & yourBookcategory & "'
回复

使用道具 举报

 楼主| 发表于 12-3-2005 04:05 PM | 显示全部楼层
max5007 于 12-3-2005 09:06 AM  说 :
我会放两个SQL STATEMENT

SELECT * FROM CATEGORY WHERE CATEGORYID='" & yourBookcategory & "'

然后EXECUTE它,那你就可以拿到你的CATEGORY的数量

然后

set 一个 string
如: ...


有没有办法我们不懂update category table,
它自动会update,如果inventory有了新category?
回复

使用道具 举报

发表于 12-3-2005 09:16 PM | 显示全部楼层
这个办法不好,
因为同一category,可以有不同的写法,
如有一个category record是“历史”,另一个record是“历史书”,
其实它们是一样的。

你应该先分类好全部category,有了全部records。
所以在新的inventory时,只是选择已设好的Category。

有新的category,应该加了先,再去inventory那里加record.
回复

使用道具 举报

SkyCaptain 该用户已被删除
发表于 12-3-2005 09:16 PM | 显示全部楼层
你的 category_id 要来干嘛? 你的inventory table 里有category_id 吗?
建议你把 category name (lifestyle,comic,reference book) 从 inventory table 里拿掉, 然后放category_id 吧。先建立 category 的 details 再去加新inventory。
回复

使用道具 举报

 楼主| 发表于 12-3-2005 10:45 PM | 显示全部楼层
SkyCaptain 于 12-3-2005 09:16 PM  说 :
你的 category_id 要来干嘛? 你的inventory table 里有category_id 吗?
建议你把 category name (lifestyle,comic,reference book) 从 inventory table 里拿掉, 然后放category_id 吧。先建立 category 的 d ...


inventory                                   category
============                  ================
book_name | isbn | cat_id          category_ name | cat_id

是这样吗?
那么,category's cat_id是pk,
inventory's cat_id是fk,
对吗?
可是我将会做一个给user add东西去inventory table,像下面这样。
isbn:___________
title:____________
category:__________(lifestyle, reference_book, entertaintment..)
price:____________
quantity:__________

    submit

然后我会list出全部不同category出来。。
每一个category都有自己的category_id。。

<a href=index.php?category_id=1>lifestyle</a>
<a href=index.php?category_id=2> reference_book</a>
回复

使用道具 举报

Follow Us
SkyCaptain 该用户已被删除
发表于 12-3-2005 11:10 PM | 显示全部楼层
在category table 里, cateogory_id 是 primary key。 在 inventory table 里, category_id 是 fk, inventory_id 是 pk。你的inventory table 没有inventory_id 吗?

然后当你要加新的 inventory 时, 把所有的category 从category table 里拿出来放在一个dropdown list 里让user选。
回复

使用道具 举报

 楼主| 发表于 13-3-2005 06:33 PM | 显示全部楼层
SkyCaptain 于 12-3-2005 11:10 PM  说 :
在category table 里, cateogory_id 是 primary key。 在 inventory table 里, category_id 是 fk, inventory_id 是 pk。你的inventory table 没有inventory_id 吗?

然后当你要加新的 inventory 时, 把所 ...


我的inventory有inventory_id,
关于那个drop down menu,
我想不适合,因为user可能会加入新的一个category,
所以还是保留,让user enter category的全名。。
有什么办法,我只是需要碰一个inventory table,
然后如果有新的category,category table会自动update?
回复

使用道具 举报


ADVERTISEMENT

SkyCaptain 该用户已被删除
发表于 13-3-2005 07:30 PM | 显示全部楼层
建议如有新的category 的时候, 让user 先加进 category table,然后再去 inventory page 加新 inventory, 那么user所需的category name 就会在 dropdown list 里出现。

如果你还是要喜欢让user 输入 category name 的话, 那每次输入新的inventory, 你都得检查user 所输入的category name 有没有在category table 里出现, 如果有的话,就copy 那个 category_id 进inventory table。 如果没有的话, 在category table 里加那个新的category name, 然后把新的 category_id 放在那个新的inventory record 里面。
回复

使用道具 举报

发表于 14-3-2005 03:49 PM | 显示全部楼层
用TRIGGER. 例ORACLE

Create or replace trigger tr_update_category
after insert on inventory
reference new as newRow
for each row
begin
update category set category=newRow.inventory_id;
end;
/
回复

使用道具 举报

 楼主| 发表于 14-3-2005 07:31 PM | 显示全部楼层
microSys 于 14-3-2005 03:49 PM  说 :
用TRIGGER. 例ORACLE

Create or replace trigger tr_update_category
after insert on inventory
reference new as newRow
for each row
begin
update category set category=newRow.inventory_id;
end;
/


有没有mysql的?
回复

使用道具 举报

发表于 19-3-2005 08:22 PM | 显示全部楼层
MYSQL 只有 VERSION 5 才 SUPPORT TRIGGER.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

 

ADVERTISEMENT



ADVERTISEMENT



ADVERTISEMENT

ADVERTISEMENT


版权所有 © 1996-2023 Cari Internet Sdn Bhd (483575-W)|IPSERVERONE 提供云主机|广告刊登|关于我们|私隐权|免控|投诉|联络|脸书|佳礼资讯网

GMT+8, 23-11-2024 08:07 AM , Processed in 0.131755 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表