我想实现一个role的表设计,不知道怎么设计好点,本人数据库不熟悉.
role表格由一下4个表格中因素组成. 比如用每个表的field1.
那么role表中的一个记录就有可能是[t1.field1(大于/小于/不等于/....)f11_v1] (关系 and /or ) [t2.field2(大于/小于/不等于/....)f22_v1]
(关系 and /or )
[t3.field1(大于/小于/不等于/....)f31_v1] (关系 and /or ) [t4.field1(not in )[f41_v1.....f41_v4]]就是说大家有没有什么好的role关系表设计 提供一个哦.table1 t1
field1 field2
f11_v1 f12_v1
f11_v2 f12_v2
f11_v3 f12_v3
f11_v4 f12_v4 table2 t2
field1 field2
f21_v1 f22_v1
f21_v2 f22_v2
f21_v3 f22_v3
f21_v4 f22_v4
table3 t3
field1 field2
f31_v1 f32_v1
f31_v2 f32_v2
f31_v3 f32_v3
f31_v4 f32_v4
table4 t4
field1 field2
f41_v1 f42_v1
f41_v2 f42_v2
f41_v3 f42_v3
f41_v4 f42_v4
role表格由一下4个表格中因素组成. 比如用每个表的field1.
那么role表中的一个记录就有可能是[t1.field1(大于/小于/不等于/....)f11_v1] (关系 and /or ) [t2.field2(大于/小于/不等于/....)f22_v1]
(关系 and /or )
[t3.field1(大于/小于/不等于/....)f31_v1] (关系 and /or ) [t4.field1(not in )[f41_v1.....f41_v4]]就是说大家有没有什么好的role关系表设计 提供一个哦.table1 t1
field1 field2
f11_v1 f12_v1
f11_v2 f12_v2
f11_v3 f12_v3
f11_v4 f12_v4 table2 t2
field1 field2
f21_v1 f22_v1
f21_v2 f22_v2
f21_v3 f22_v3
f21_v4 f22_v4
table3 t3
field1 field2
f31_v1 f32_v1
f31_v2 f32_v2
f31_v3 f32_v3
f31_v4 f32_v4
table4 t4
field1 field2
f41_v1 f42_v1
f41_v2 f42_v2
f41_v3 f42_v3
f41_v4 f42_v4
你的应用需求是如何的?
这么说吧,
t1 中存放农副产品名称
t1 名称 价格
大蒜 10
生姜 10
辣椒 10
大米 10
鱼 10
t2产地
湖南
山西
安徽t3 中间商类型
代理商 20%
超市 30%我要设计一个规则表让用户自己制定盈余规则,
比如说 1.从湖南进的鱼通过代理商必须加价20%才能赢利. 山西进的辣椒通过超市买加价低于30%就亏了.
2 从安徽进的大米和生姜通过超市如果加价30% 就会赢利 20%就是规则表从其他几个表中取元素,然后加上条件(大于 等于 小于), 条件之间是and /or等,生成一个新的记录存在我的规则表中, 以后我就根据规则对进货地点,产品,价格进行利润盈余计算.
我现在要生成一个规则表, 就像举例的, 用户可以自己定义一定的规则存入这个规则表中, 以后我就去根绝规则表的规则查询, 满足某种条件了,这个生意就能做,赚前的, 满足另外一组组合条件就是亏钱的, 或者另外一个条件就是赢利持平,不亏不赚的.可能我之前的描述不太清楚,数据库设计的程序做的不太多哦.谢谢了啊.
CREATE table roles
(
id INT identity primary key,
funcid int,--外键,表示一个功能
serialno int,--序号
TableName VARCHAR(100),--这个功能包含的表
ColumnName VARCHAR(100),--列名
COlumnType VARCHAR(20),--列类型
operator VARCHAR(20),--运算符 =><inlike not in not like ....
initialvalue VARCHAR(50),--比较的值
logical VARCHAR(50),--逻辑关系 and or
isactive int,--是否启用
ExternalExpresion VARCHAR(200) --直接编写语法替换上面的语法
)我看到了一个考勤软件中这么样设计的,不知道他怎么样用的
--统计项目表
Create Table LeaveClass1(
LeaveId INT Identity(999,1) not null primary key, --999-公出
LeaveName VARCHAR(20) not null,
MinUnit float not null default 1,
Unit smallint not null default 0,
RemaindProc smallint not null default 2,
RemaindCount smallint not null default 1,
ReportSymbol varchar(4) not null default '_',
Deduct float not null default 0,
LeaveType SMALLINT not null default 0, --bit0-是否统计项;bit1-是否异常情况项;
Color int not null default 0,
Classify SMALLINT not null default 0, --计算类别,bit0-按班次时段分类;bit1-按节假日分类
Calc text null) --计算单位
;insert into LeaveClass1(LeaveName, MinUnit, Unit, RemaindProc,
RemaindCount, ReportSymbol, LeaveType, Calc)
values('公出', 0.5, 3, 1, 1, 'G', 3, 'if(AttItem(LeaveType1)=999,AttItem(LeaveTime1),0)+if(AttItem(LeaveType2)=999,AttItem(LeaveTime2),0)+if(AttItem(LeaveType3)=999,AttItem(LeaveTime3),0)+if(AttItem(LeaveType4)=999,AttItem(LeaveTime4),0)+if(AttItem(LeaveType5)=999,AttItem(LeaveTime5),0)');规则'公出',当满足Calc条件时候ReportSymbol'G',这个规则就是用户自己定义的.