寻求下关于数据库表结构设计

-Tracy-McGrady- 2013-05-16 12:59:55
我有个需求,不同的企业,勾选剂型,可以多选。不知道该怎么存储较为好。请高手赐教。我现在想用一个字段存储。但是好像查询的时候很麻烦吧。也有人告诉我可以用动态表,但是不会,。请各位做过类似的告诉我一下,谢谢了。
...全文
413 64 打赏 收藏 转发到动态 举报
写回复
用AI写文章
64 条回复
切换为时间正序
请发表友善的回复…
发表回复
VajraCat 2013-05-17
  • 打赏
  • 举报
回复
企业信息表:ID、企业名称、证书编号.... 剂型信息表:ID、剂型.... 企业剂型表:ID、证书编号、剂型1、剂型2、剂型3....剂型N(剂型1-n与剂型信息部中剂型字段对应,用0、1表示勾选) 简单明了,多好。 按剂型查企业:select * from 企业信息表 where 证书编号 in(select 证书编号 from 企业剂型表 where 剂型1=1 and 剂型m=1 ) 按企业查剂型:select * from 企业剂型表 where 证书编号 in (select 证书编号 from 企业信息表 where 企业名称=xxx),这个查出来会有没有勾选的企业,再在外面处理下就好了。 插入的话:insert into 企业剂型表(剂型1、剂型m) values (1,1) where 证书编号=abcdefg
王者天下ii 2013-05-17
  • 打赏
  • 举报
回复
引用 47 楼 yangsh0722 的回复:
孺子不可教,我给你两分,你同意吗?
那你又说什么字段太长了,郁闷。事真是愁啊你。不知道你想怎么搞。我感觉根本就不存在删除问题,给个字段改变过滤不显示就完了。只存在新增
王者天下ii 2013-05-17
  • 打赏
  • 举报
回复
引用 62 楼 yangsh0722 的回复:
[quote=引用 60 楼 yan470925731 的回复:] 这里有高手没帮我解决个问题吧 下面是问题
[/quote] 帮忙看哈下,知道什么情况不
-Tracy-McGrady- 2013-05-17
  • 打赏
  • 举报
回复
引用 60 楼 yan470925731 的回复:
这里有高手没帮我解决个问题吧 下面是问题
王者天下ii 2013-05-17
  • 打赏
  • 举报
回复
function add(){ store.load(); $('#userId').val(""); win.show(); } function modify(){ var record = grid.getSelectionModel().getSelection(); if(record.length==0){ Ext.MessageBox.alert('提示', '请先选择数据!'); }else if(record.length>1){ Ext.MessageBox.alert('提示', '请选择一行数据!'); }else{ $('#userId').val(record[0].get("id")); form.getForm().findField("username").setValue(record[0].get("username")); form.getForm().findField("realname").setValue(record[0].get("realname")); form.getForm().findField("password").setValue(record[0].get("password")); form.getForm().findField("telephone").setValue(record[0].get("telephone")); form.getForm().findField("email").setValue(record[0].get("email")); form.getForm().findField("position").setValue(record[0].get("position")); form.getForm().findField("department").setValue(record[0].get("department")); form.getForm().findField("address").setValue(record[0].get("address")); form.getForm().findField("flag").setValue(record[0].get("flag")); form.getForm().findField("sex").setValue(record[0].get("sex")); win.show(); } } function readOnlyValue(){ if($('#userId').val("")!=""){ return true;//不可以修改 }else{ return false;//可以修改 } } { xtype: 'textfield', fieldLabel: '登录账号', readOnly : readOnlyValue(), name:'username', blankText:'登录账号不能为空', allowBlank: false } 在这里我想当点击add函数的时候将readOnly 值设为false。可以编辑的,当点击修改的时候将readOnly 值设为true. 现在的问题:我先点击那个函数就会一直是true或者false; 例如:我先点击add函数,出来的界面是可以编辑的,但是我在点击modify的时候还是可以便捷的。似乎窗口中的值没有改变,都是可以修改的。如果先点击modify结果和先点击add函数相反。
王者天下ii 2013-05-17
  • 打赏
  • 举报
回复
这里有高手没帮我解决个问题吧 下面是问题
残月照我心 2013-05-17
  • 打赏
  • 举报
回复
引用 42 楼 yangsh0722 的回复:
这两千定义了以后有可能我只勾选一个,有时候挺浪费的哈
拼接的话 一点不浪费
残月照我心 2013-05-17
  • 打赏
  • 举报
回复
string sql="select * from tb1 where 1=1 ";
if(!string.IsNullOrEmpty(textbox1.Text.Trim()))
{
sql+=" and username=@name";
}
if(!string.IsNullOrEmpty(textbox2.Text.Trim()))
{
sql+=" and 民族=@minzu";
}
if(!string.IsNullOrEmpty(textbox3.Text.Trim()))
{
sql+=" and Num=@num";
}
if(!string.IsNullOrEmpty(textbox4.Text.Trim()))
{
sql+=" and gander=@gander";
}
//这样就够了   不管几个条件 都可以!!
残月照我心 2013-05-17
  • 打赏
  • 举报
回复
引用 40 楼 yangsh0722 的回复:
[quote=引用 39 楼 yan470925731 的回复:] [quote=引用 38 楼 yangsh0722 的回复:] [quote=引用 36 楼 yan470925731 的回复:] [quote=引用 楼主 yangsh0722 的回复:] 我有个需求,不同的企业,勾选剂型,可以多选。不知道该怎么存储较为好。请高手赐教。我现在想用一个字段存储。但是好像查询的时候很麻烦吧。也有人告诉我可以用动态表,但是不会,。请各位做过类似的告诉我一下,谢谢了。
刚说的思路是通滴,应该可行[/quote] 听不懂,如果我剂型全部勾选了,你那字段存什么[/quote] 证书主键+剂型;证书主键+剂型;证书主键+剂型;证书主键+剂型;明白不[/quote] 那估计我这个字段要定义长度2000差不多了,估计还不够。还有我查有片剂跟水丸的有哪些,这些所对应的剂型有哪些,你的select怎么写??[/quote] select 你可以尝试下拼接字符串
發糞塗牆 2013-05-17
  • 打赏
  • 举报
回复
引用 55 楼 yangsh0722 的回复:
[quote=引用 54 楼 DBA_Huangzj 的回复:] [quote=引用 53 楼 yangsh0722 的回复:] [quote=引用 52 楼 DBA_Huangzj 的回复:] [quote=引用 50 楼 yangsh0722 的回复:] [quote=引用 48 楼 yan470925731 的回复:] [quote=引用 47 楼 yangsh0722 的回复:] 孺子不可教,我给你两分,你同意吗?
那你又说什么字段太长了,郁闷。事真是愁啊你。不知道你想怎么搞。我感觉根本就不存在删除问题,给个字段改变过滤不显示就完了。只存在新增[/quote].....你毕业了没?[/quote]还没结贴....[/quote] 今晚回去结贴,太忙了,公司要认证GSP,天天写代码啊[/quote]写写更健康[/quote] 你也用妇炎洁?[/quote]你送我我还有可以拿去给女朋友用的
-Tracy-McGrady- 2013-05-17
  • 打赏
  • 举报
回复
引用 54 楼 DBA_Huangzj 的回复:
[quote=引用 53 楼 yangsh0722 的回复:] [quote=引用 52 楼 DBA_Huangzj 的回复:] [quote=引用 50 楼 yangsh0722 的回复:] [quote=引用 48 楼 yan470925731 的回复:] [quote=引用 47 楼 yangsh0722 的回复:] 孺子不可教,我给你两分,你同意吗?
那你又说什么字段太长了,郁闷。事真是愁啊你。不知道你想怎么搞。我感觉根本就不存在删除问题,给个字段改变过滤不显示就完了。只存在新增[/quote].....你毕业了没?[/quote]还没结贴....[/quote] 今晚回去结贴,太忙了,公司要认证GSP,天天写代码啊[/quote]写写更健康[/quote] 你也用妇炎洁?
發糞塗牆 2013-05-17
  • 打赏
  • 举报
回复
引用 53 楼 yangsh0722 的回复:
[quote=引用 52 楼 DBA_Huangzj 的回复:] [quote=引用 50 楼 yangsh0722 的回复:] [quote=引用 48 楼 yan470925731 的回复:] [quote=引用 47 楼 yangsh0722 的回复:] 孺子不可教,我给你两分,你同意吗?
那你又说什么字段太长了,郁闷。事真是愁啊你。不知道你想怎么搞。我感觉根本就不存在删除问题,给个字段改变过滤不显示就完了。只存在新增[/quote].....你毕业了没?[/quote]还没结贴....[/quote] 今晚回去结贴,太忙了,公司要认证GSP,天天写代码啊[/quote]写写更健康
-Tracy-McGrady- 2013-05-17
  • 打赏
  • 举报
回复
引用 52 楼 DBA_Huangzj 的回复:
[quote=引用 50 楼 yangsh0722 的回复:] [quote=引用 48 楼 yan470925731 的回复:] [quote=引用 47 楼 yangsh0722 的回复:] 孺子不可教,我给你两分,你同意吗?
那你又说什么字段太长了,郁闷。事真是愁啊你。不知道你想怎么搞。我感觉根本就不存在删除问题,给个字段改变过滤不显示就完了。只存在新增[/quote].....你毕业了没?[/quote]还没结贴....[/quote] 今晚回去结贴,太忙了,公司要认证GSP,天天写代码啊
發糞塗牆 2013-05-17
  • 打赏
  • 举报
回复
引用 50 楼 yangsh0722 的回复:
[quote=引用 48 楼 yan470925731 的回复:] [quote=引用 47 楼 yangsh0722 的回复:] 孺子不可教,我给你两分,你同意吗?
那你又说什么字段太长了,郁闷。事真是愁啊你。不知道你想怎么搞。我感觉根本就不存在删除问题,给个字段改变过滤不显示就完了。只存在新增[/quote].....你毕业了没?[/quote]还没结贴....
-Tracy-McGrady- 2013-05-17
  • 打赏
  • 举报
回复
引用 49 楼 Wshinger 的回复:
企业信息表:ID、企业名称、证书编号.... 剂型信息表:ID、剂型.... 企业剂型表:ID、证书编号、剂型1、剂型2、剂型3....剂型N(剂型1-n与剂型信息部中剂型字段对应,用0、1表示勾选) 简单明了,多好。 按剂型查企业:select * from 企业信息表 where 证书编号 in(select 证书编号 from 企业剂型表 where 剂型1=1 and 剂型m=1 ) 按企业查剂型:select * from 企业剂型表 where 证书编号 in (select 证书编号 from 企业信息表 where 企业名称=xxx),这个查出来会有没有勾选的企业,再在外面处理下就好了。 插入的话:insert into 企业剂型表(剂型1、剂型m) values (1,1) where 证书编号=abcdefg
也行,这个不好显示,比如你select * from [企业剂型表] where [证书编号]='XXX' 弄出来这么一串以后不好翻译成对应的中文,而且到时候还要把为1的部分都勾选上,不好处理。
-Tracy-McGrady- 2013-05-17
  • 打赏
  • 举报
回复
引用 48 楼 yan470925731 的回复:
[quote=引用 47 楼 yangsh0722 的回复:] 孺子不可教,我给你两分,你同意吗?
那你又说什么字段太长了,郁闷。事真是愁啊你。不知道你想怎么搞。我感觉根本就不存在删除问题,给个字段改变过滤不显示就完了。只存在新增[/quote].....你毕业了没?
-Tracy-McGrady- 2013-05-16
  • 打赏
  • 举报
回复
引用 46 楼 yan470925731 的回复:
[quote=引用 42 楼 yangsh0722 的回复:] 这两千定义了以后有可能我只勾选一个,有时候挺浪费的哈
如果你 剂型 的主键在别的表没怎么用到,不如不用加了。1a333 就做剂型主键[/quote] 孺子不可教,我给你两分,你同意吗?
王者天下ii 2013-05-16
  • 打赏
  • 举报
回复
引用 42 楼 yangsh0722 的回复:
这两千定义了以后有可能我只勾选一个,有时候挺浪费的哈
如果你 剂型 的主键在别的表没怎么用到,不如不用加了。1a333 就做剂型主键
王者天下ii 2013-05-16
  • 打赏
  • 举报
回复
如果你 剂型 的主键在别的表没怎么用到,不如不用加了。1a333就做剂型主键
王者天下ii 2013-05-16
  • 打赏
  • 举报
回复
引用 40 楼 yangsh0722 的回复:
[quote=引用 39 楼 yan470925731 的回复:] [quote=引用 38 楼 yangsh0722 的回复:] [quote=引用 36 楼 yan470925731 的回复:] [quote=引用 楼主 yangsh0722 的回复:] 我有个需求,不同的企业,勾选剂型,可以多选。不知道该怎么存储较为好。请高手赐教。我现在想用一个字段存储。但是好像查询的时候很麻烦吧。也有人告诉我可以用动态表,但是不会,。请各位做过类似的告诉我一下,谢谢了。
刚说的思路是通滴,应该可行[/quote] 听不懂,如果我剂型全部勾选了,你那字段存什么[/quote] 证书主键+剂型;证书主键+剂型;证书主键+剂型;证书主键+剂型;明白不[/quote] 那估计我这个字段要定义长度2000差不多了,估计还不够。还有我查有片剂跟水丸的有哪些,这些所对应的剂型有哪些,你的select怎么写??[/quote] 那多激情啊! 查有片剂跟水丸 是用什么在数据里代表的呢。如果实在是太多你就这样子搞好了加个把他们分开 证书表 id 1a 剂型 新增加字段 1a333 1a444
加载更多回复(43)

34,594

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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