除策略急...
我在一些行操作
有Quality(id,name)材表
有Material(id,name,qualityid)原材料表
在除Quality中的一行采用什么方法?
1.先查在Material中是否有引用如果直接其除(或者在Quality中再添加一字段State(bit)其修改0使降)做效果是最好的了但同也是最不可取的因我打算一易展的系如果每次在除之前都去查引用那么以后如果修改了或是增加了新的引用那么就不得不去修改之前的程序
2.直接在Quality中加入State(bit)字段每次除不管3721State修改0然后所有有引用Quality的id的地方都空值。很多系就是用方式但是客很接受因之前定的好好的料突然都成了空白非常非常不舒服我程序之前最痛恨程序
3.同2加入State,除也是State修改0但是在有引用Quality的地方示添加()引用的地方引用Quality的id只是在新增已看不到State0的Quality的id了方法也似乎不妥明明不存在的挂在了不出的位置...
各位兄弟是怎理的呢盼回
[解决办法]
看业务情况,1方式和3方式比较常用,最常用的是3方式,虽然有无用数据但不会因为误操作丢失数据。
你还可以使用查数据表外键的方式,将所有约束的数据项清除然后再删本表数据,这样的危险性也很大,不提倡使用。
[解决办法]
我比较赞同第二种做法,前提是管理员必须对系统非常了解;第二种方案的补充意见是:当你删除Quality中的一行,不要物理删除,只要修改其状态就可以了.
[解决办法]
你首先需要弄清楚这两表是否是真正的主从表,
如果是主从表,你可以使用数据库的外键级联删除功能,那么删除主表信息,从表记录会被系统自动删除。
如果不是纯粹的主从表,即从表有记录要防止主表删除,你可以使用存储过程,把判断以及删除放到存储过程中,这样可以简化程序操作。
[解决办法]
Knight94(愚翁) ( )
又见高人来!
有问题赶紧问!
[解决办法]
第二方法:增加一字段此是否有效,比好吧,除效即可,其它地方引用此表的都要加上有效的件
[解决办法]
to 我是想在除Quality在存程中去判是否在Material中是否存在引用如果存在不能除但是如果在之后我又加入了 StandardPart(准品)表而表又要引用Quality表中的行那么我又不得不去修改ut_QualityDelete存程如果后面又增加一表引用Quality...的我得改到何年何月呀
那你用我给你的第二个建议,把删除判断做到存储中,减少程序端的处理。
[解决办法]
有Quality(id,name)材表
有Material(id,name,qualityid)原材料表
^^^^^^^^^^^^^^^^^^^^^^^^^
说说自己的看法
Quality(id,name)材表
Material_Quality(Materialid,Qualityid)增加表
Material(id,name)原材料表
StandardPart
StandardPart_Quality
^^^^^
如果能设计成这样 是不是就没那些问题了
[解决办法]
to 说说自己的看法
Quality(id,name)材表
Material_Quality(Materialid,Qualityid)增加表
Material(id,name)原材料表
StandardPart
StandardPart_Quality
[解决办法]
赞同 Knight94(愚翁) 的说法。
把删除判断的操作都放存储过程中,其实这样的改动在程序设计中来说应该是比较小的了。
[解决办法]
建立一个类似日志一样的表PFLogo
PFLogo(id,ptable,ftable)
如果你有新建了一个表(newtable),并且这个新表和原来的某个表有关联就在这个表里记录一下比如
id ptable ftable
-------------------------
1 Quality Material
2 Quality newtable
3 other1 other1f1
4 other1 other1f2
然后再修改你原来的存储过程,每次删除主表时来检测一下PFLogo这个表,如
select ftable from pflogo where ptable= 'Quality '
这样可能会找到N个结果....剩下的就是存储过程中写代码的问题了..