进销存数据库设计
CREATE TABLE user(
User_Id varchar(6),
User_Pwd varchar(8) NULL,
Again_Pwd varchar(8) NULL,
Bel_Group varchar(3) NULL,
Div_Type varchar(1) NULL,
User_Auth varchar(1) NULL,
Auth_Type varchar(1) NULL,
User_Status varchar(1) NULL,
Create_User varchar(6) NULL,
Create_Date varchar(7) NULL,
Create_Time varchar(6) NULL,
Appr_User varchar(6) NULL,
Appr_Date varchar(7) NULL,
Appr_Time varchar(6) NULL,
Pwd_Date varchar(7) NULL,
Err_Count float NULL,
Use_eJCIC varchar(1) NULL
)
CREATE TABLE Supplier/*供应商表*/
(
Supplier_ID int IDENTITY(1,1) NOT NULL, /* 供应商编号 ,主键 */
Name varchar(250) NOT NULL, /* 供应商名称 */
Address varchar(250) NOT NULL, /* 地址 */
Phone varchar(25) NULL, /* 电话 */
Fax varchar(25) NULL, /* 传真 */
PostalCode varchar(10) NULL, /* 邮编 */
ConstactPersonvarchar(20) NULL /* 联系人 */
)
CREATE TABLE Customer /* 客户表*/
(
Customer_ID int IDENTITY(1,1) NOT NULL, /* 客户编号,主键*/
Name varchar(250) NOT NULL, /* 客户名称 */
Address varchar(250) NOT NULL, /* 地址 */
Phone varchar(25) NULL, /* 电话 */
Fax varchar(25) NULL, /* 传真 */
PostalCode varchar(10) NULL, /* 邮编 */
ConstactPersonvarchar(20) NULL /* 联系人 */
)
CREATE TABLE Dept /* 部门表 */
(
Dept_ID int IDENTITY(1,1) NOT NULL, /* 部门编号,主键 */
Name varchar(30) NOT NULL, /* 名称 */
Remark varchar(250) NOT NULL/* 描述,备注 */
)
CREATE TABLE Dept_Supplier /* 部门--供应商表*/
(
Dept_ID int NOT NULL,/* 部门编号,主键 ,外键( 参照 DEPT 表)*/
Supplier_ID int NOT NULL /* 供应商编号 ,主键,外键( 参照 SUPPLIER 表) */
)
CREATE TABLE Dept_Customer /* 部门--客户表*/
(
Dept_ID int NOT NULL, /* 部门编号,主键 ,外键( 参照 DEPT 表)*/
Customer_ID int NOT NULL/* 客户编号,主键,外键( 参照 SUPPLIER 表) */
)
CREATE TABLE StoreHouse /* 仓库表 */
(
StoreHouse_ID int IDENTITY(1,1) NOT NULL,/* 仓库编号,主键 */
Address varchar(250) NOT NULL,/* 地址 */
Phone varchar(25) NULL, /* 电话 */
Employee_ID INT NOT NULL,/* 仓库保管 ,外键 ( 参照 EMPLOYEE 表 ) */
CreateDate datetime NULL /* 仓库成立时间 */
)
CREATE TABLE ProductClass/* 商品总分类表 */
(
ProductClass_IDint IDENTITY(1,1) NOT NULL,/* 商品总分类编号, 主键 */
Name varchar(30) NOT NULL,/* 商品分类名称 */
Employee_ID INT NOT NULL,/* 建分类人 ,外键 ( 参照 EMPLOYEE 表 )*/
CreateDate datetime NULL, /* 建分类时间 */
Remark varchar(250) NULL, /* 描述,备注 */
)
CREATE TABLE ProductList/* 商品细分类表 */
(
ProductClass_IDINT NOT NULL, /* 商品总分类编号, 外键 ( 参照PRODUCTCLASS 表 ) */
ProductList_ID int IDENTITY(1,1) NOT NULL, /* 商品细分类编号,主键 */
Name varchar(30) NOT NULL, /* 商品名称 */
Employee_ID INT NOT NULL, /* 建分类人,外键 ( 参照 EMPLOYEE 表 )*/
CreateDate datetime NULL, /* 建分类时间 */
Remark varchar(250) NULL, /* 描述 ,备注 */
)
CREATE TABLE ProductSpec/* 商品规格表 */
(
ProductSpec_ID INT IDENTITY(1,1) NOT NULL, /* 商品规格编号,主键 */
Name varchar(30) NOT NULL, /* 商品规格名称 */
Employee_ID INT NOT NULL, /* 操作员 ,外键 ( 参照 EMPLOYEE 表 )*/
CreateDate datetime NULL, /* 创建时间 */
Remark varchar(250) NULL /* 描述,备注 */
)
CREATE TABLE ProductUnit /* 商品计量单位表 */
(
ProductUnit_ID INT IDENTITY(1,1) NOT NULL, /* 计量单位编号 ,主键 */
Name varchar(30) NOT NULL, /* 计量单位名称 */
Employee_ID INT NOT NULL, /* 操作员 ,外键 ( 参照 EMPLOYEE 表 )*/
CreateDate datetime NULL, /* 创建时间 */
Remark varchar(250) NULL /* 描述,备注 */
)
CREATE TABLE Product /* 商品目录表 */
(
ProductList_ID int NOT NULL,/* 商品细分类编号, 外键 ( 参照 PRODUCTLIST 表 ) */
Product_ID INT IDENTITY(1,1) NOT NULL,/* 商品名称编号, 主键 */
Name varchar(30) NOT NULL,/* 商品名称 */
ProductSpec_ID INT NOT NULL,/* 商品规格, 外键 ( 参照 PRODUCTSPEC 表 ) */
ProductUnit_ID INT NOT NULL,/* 计量单位, 外键 ( 参照 PRODUCTUNIT 表 ) */
Price MONEY NULL, /* 参考价格 */
Employee_ID INT NOT NULL,/* 操作员, 外键 ( 参照 EMPLOYEE 表 )*/
CreateDate datetime NULL, /* 创建时间 */
Remark varchar(250) NULL /* 描述,备注 */
)
CREATE TABLE Product_Supplier/* 商品--供应商表 */
(
Product_ID INT NOT NULL, /* 商品名称编号,主键 , 外键( 参照 PRODUCT 表)*/
Supplier_ID INT NOT NULL /* 供应商编号 , 主键,外键( 参照 SUPPLIER 表) */
)
CREATE TABLE Employee/* 员工表 */
(
Employee_ID INT IDENTITY(1,1) NOT NULL,/* 员工编号 */
Dept_ID INT NOT NULL,/* 所属部门编号 */
Name varchar(30) NOT NULL,/* 姓名 */
Duty varchar(20) NOT NULL,/* 职务 */
Gender varchar(6) NOT NULL,/* 性别 */
BirthDate datetime NOT NULL,/* 出生日期 */
HireDate datetime NULL, /* 合同签订 日期 */
MatureDate datetime NULL, /* 合同到期日 */
IdentityCard varchar(20) NULL, /* 身份证号 */
Address varchar(250) NULL, /* 住址 */
Phone varchar(25) NULL, /* 电话 */
Email varchar(30) NULL /* E_MAIL */
)
/*-///////////////////////////////////////////////////////////////////////////////////////-*/
CREATE TABLE BuyOrder /* 进货合同 */
(
BuyOrder_ID INT IDENTITY(1,1) NOT NULL, /* 进货合同编号 , 主键 */
WriteDate datetime NOT NULL, /* 合同签订日期*/
InsureDate datetime NOT NULL, /* 合同生效日期*/
EndDate datetime NOT NULL, /* 合同到期日期*/
Dept_ID INT NOT NULL, /* 签订部门, 外键 ( 参照 DEPT 表 ) */
Supplier_ID INT NOT NULL, /* 供应商, 外键 ( 参照 SUPPLIER 表 ) */
Employee_ID INT NOT NULL/* 合同主要负责人, 外键 ( 参照 EMPLOYEE 表) */
)
CREATE TABLE BuyOrder_Detail/* 进货合同明细表 */
(
BuyOrder_ID INT NOT NULL,/* 进货合同编号,主键, 外键 ( 参照 BUYORDER 表 ) */
Product_ID INT NOT NULL,/* 所进商品编号,主键, 外键 (参照 PRODUCT 表 ) */
Quantity INT NOT NULL,/* 商品数量 */
Price money NOT NULL /* 商品进价 */
)
CREATE TABLE EnterStock /* 入库单表 */
(
EnterStock_ID INT IDENTITY(1,1) NOT NULL, /* 入库单编号 , 主键 */
EnterDate datetime NOT NULL, /* 入库时间 */
Dept_ID INT NOT NULL, /* 入库部门 ,外键 ( 参照 DEPT 表 )*/
StoreHouse_ID INT NOT NULL, /* 所入仓库 ,外键 ( 参照 STOREHOUSE 表)*/
Employee_ID INT NOT NULL/* 入库人 ,外键 ( 参照 EMPLOYEE 表)*/
/*需添加 仓库保管员如何来验证入库单 ?? */
)
CREATE TABLE EnterStock_Detail /* 入库单明细 */
(
EnterStock_ID INT NOT NULL, /* 入库单编号 , 主键, 外键 (参照 ENTERSTOCK 表 )*/
Product_ID INT NOT NULL, /* 此种商品编号,主键, 外键 (参照 PRODUCT 表 ) */
Quantity int NOT NULL, /* 此种商品数量 */
Price money NULL, /* 此种商品参考价格*/
HaveInvoice bit not null, /* 此种商品有没有开发票 ( 缺省为 0 , 有没有开票 )*/
InvoiceNum varchar(30) NULL /* 发票号 */
)
CREATE TABLE BackStock/* 退库单表 */
(
BackStock_ID INT IDENTITY(1,1) NOT NULL, /* 退库单编号 , 主键 */
BackDate datetime NOT NULL, /* 退库时间 */
Dept_ID INT NOT NULL, /* 退库部门 ,外键 ( 参照 DEPT 表 )*/
StoreHouse_ID INT NOT NULL, /* 所退入仓库 ,外键 ( 参照 STOREHOUSE 表)*/
Employee_ID INT NOT NULL, /* 退库人 , 外键 ( 参照 EMPLOYEE 表)*/
Remark varchar(250) NULL /* 退库原因 */
)
CREATE TABLE BackStock_Detail /* 退库单明细表 */
(
BackStock_ID INT NOT NULL, /* 退库单编号 , 主键, 外键 (参照 BACKSTOCK 表 )*/
Product_ID INT NOT NULL, /* 所退商品编号,主键, 外键 (参照 PRODUCT 表 ) */
Quantity int NOT NULL, /* 退入数量 */
Price money NULL /* 参考价格 */
)
CREATE TABLE LeaveStock/* 出库单表 */
(
LeaveStock_ID INT IDENTITY(1,1) NOT NULL,/* 出库单编号 , 主键, 外键 (参照 LEAVESTOCK 表 )*/
LeaveDate datetime NOT NULL,/* 出库时间 */
Dept_ID INT NOT NULL,/* 出库部门 ,外键 ( 参照 DEPT 表 )*/
StoreHouse_ID INT NOT NULL,/* 所出仓库 ,外键 ( 参照 STOREHOUSE 表)*/
ToStoreHouse_IDINT NOT NULL,/* 所入仓库 ,外键 ( 参照 STOREHOUSE 表)*/
Employee_ID INT NOT NULL /* 出库人 , 外键 ( 参照 EMPLOYEE 表)*/
/* 仓库保管员如何来验证出库单 ?? */
)
CREATE TABLE LeaveStock_Detail/* 出库单明细表 */
(
LeaveStock_ID INT NOT NULL,/* 出库单编号 , 主键, 外键 (参照 BACKSTOCK 表 )*/
Product_ID INT NOT NULL,/* 所出商品编号,主键, 外键 (参照 PRODUCT 表 ) */
Quantity int NOT NULL,/* 出库数量 */
Price money NULL /* 出库价格 */
)
CREATE TABLE BackSale/* 退货单表 */
(
BackSale_ID INT IDENTITY(1,1) NOT NULL,/* 退货单编号 , 主键 */
BackDate datetime NOT NULL,/* 退货日期*/
Dept_ID INT NOT NULL,/* 退货部门 ,外键 ( 参照 DEPT 表 )*/
StoreHouse_ID INT NOT NULL,/* 退入仓库 ,外键 ( 参照 STOREHOUSE 表)*/
Employee_ID INT NOT NULL,/* 退货人 , 外键 ( 参照 EMPLOYEE 表)*/
Remark varchar(250) NULL /* 退货原因 */
)
CREATE TABLE BackSale_Detail/* 退货单明细表 */
(
BackSale_ID INT NOT NULL,/* 退货单编号 , 主键, 外键 (参照 BACKSTOCK 表 )*/
Product_ID INT NOT NULL,/* 所退商品编号,主键, 外键 (参照 PRODUCT 表 ) */
Quantity int NOT NULL,/* 退货数量 */
Price money NULL /* 价格 */
)
CREATE TABLE SaleOrder /* 销售合同 */
(
SaleOrder_ID INT IDENTITY(1,1) NOT NULL,/* 合同编号 , 主键 */
WriteDate datetime NOT NULL,/* 合同签订日期*/
InsureDate datetime NOT NULL,/* 合同生效日期*/
EndDate datetime NOT NULL,/* 合同到期日期*/
Dept_ID INT NOT NULL,/* 签订部门, 外键 ( 参照 DEPT 表 ) */
Customer_ID INT NOT NULL,/* 客户编号, 外键 ( 参照 CUSTOMER 表 ) */
Employee_ID INT NOT NULL /* 合同主要负责人, 外键 ( 参照 EMPLOYEE 表) */
)
CREATE TABLE SaleOrder_Detail/* 销售合同明细表 */
(
SaleOrder_ID INT NOT NULL,/* 销售合同编号,主键, 外键 ( 参照 BUYORDER 表 ) */
Product_ID INT NOT NULL,/* 销售商品编号,主键, 外键 (参照 PRODUCT 表 ) */
Quantity int not null,/* 商品数量 */
Price money null /* 商品进价 */
)
CREATE TABLE Buy /* 进货表 ( 验货表 ) */
(
Buy_ID INT IDENTITY(1,1) NOT NULL, /* 进货编号 , 主键 */
ComeDate datetime NOT NULL, /* 进货日期 */
Dept_ID INT NOT NULL, /* 进货部门, 外键 ( 参照 DEPT 表 ) */
Employee_ID INT NOT NULL/* 验货人, 外键 ( 参照 EMPLOYEE 表)*/
)
CREATE TABLE Buy_Detail/* 进货表明细 ( 验货表 ) */
(
Buy_ID INT NOT NULL, /* 进货编号,主键, 外键 ( 参照 BUY 表 ) */
Product_ID INT NOT NULL, /* 商品编号,主键, 外键 ( 参照 PRODUCT 表 ) */
BuyOrder_ID INT NULL, /* 采购合同,外键 ( 参照 BUYORDER 表 ) */
Quantity int not null, /* 数量 */
Price money null /* 价格 */
/* BUYORDER_ID 为 NULL 时, 为现金进货 */
)
CREATE TABLE Sale /* 销售 表 */
(
Sale_ID INT IDENTITY(1,1) NOT NULL,/* 销售 编号*/
SaleDate datetime not null,/* 销售 日期 */
Dept_ID INT NOT NULL,/* 销售部门, 外键 ( 参照 DEPT 表 ) */
Employee_ID INT NOT NULL /* 售货人, 外键 ( 参照 EMPLOYEE 表)*/
)
CREATE TABLE Sale_Detail/* 销售明细 ( 验货表 ) */
(
Sale_ID INT NOT NULL,/* 销售编号,主键, 外键 ( 参照 SALE 表 ) */
Product_ID INT NOT NULL,/* 商品编号,主键, 外键 ( 参照 PRODUCT 表 ) */
SaleOrder_ID INT NULL, /* 销售合同, 外键 ( 参照 SALEORDER 表 ) */
Quantity int not null,/* 数量 */
Price money not null,/* 价格 */
Discount int null /* 折扣 */
/* SALEORDER_ID 为 NULL 时, 为现金销售 */
)
CREATE TABLE StockPile/* 库存表 */
(
StockPile_ID INT IDENTITY(1,1) NOT NULL, /* 库存编号 , 主键 */
Dept_ID INT NOT NULL, /* 商品所属部门, 外键 ( 参照 DEPT 表 ) */
StoreHouse_ID INT NOT NULL, /* 所在仓库, 外键 ( 参照 SOTREHOUSE 表 ) */
Product_ID INT NOT NULL, /* 商品编号, 外键 ( 参照 PRODUCT 表 ) */
FirstEnterDate datetime not null, /* 此种商品第一次入库时间 */
LastLeaveDate datetime null, /* 此种商品最后一次出库时间 */
Quantity int not null, /* 所存数量 */
Price money not null/* 加权价 */
/* LASTLEAVEDATE 为NULL 时,此种商品从来没有 卖过 */
)
有段很漂亮的代码。来自http://efe.baidu.com/blog/mobile-fixed-layout/ 也许以后会用上,可以用来判断滚动条是否到某个位置,还有滑动的方向,以此来判断什么时候阻止滚动条滚动。代码已经过详细注释:
<script type="text/javascript">
// 防止内容区域滚到底后引起页面整体的滚动
var content = document.querySelector('main');
var startY;
content.addEventListener('touchstart', function (e) {
//起始位置
startY = e.touches.clientY;
});
content.addEventListener('touchmove', function (e) {
// 高位表示向上滚动
// 底位表示向下滚动
// 1容许 0禁止
var status = '11';
var ele = this;
//当前位置
var currentY = e.touches.clientY;
//如果垂直偏移量scrollTop为0,说明要么内容小于容器没有滚动条,要么大于容器但滚动条在顶部
if (ele.scrollTop === 0) {
// 如果内容小于容器则同时禁止上下滚动,若大于则可以向下滚动
status = ele.offsetHeight >= ele.scrollHeight ? '00' : '01';
} else if (ele.scrollTop + ele.offsetHeight >= ele.scrollHeight) {
/*
1.垂直偏移量scrollTop+整个元素的尺寸offsetHeight(包括边框)=整个内容区域scrollHeight
证明已经滚到底部了只能向上滚动;
2.其中offsetHeight(包括边框)是否要换成clientHeight(不包括边框)?
*/
status = '10';
}
//若status==11则上面三种情况都不是,这种情况是有滚动条且滚动条不在顶部也不在底部
if (status != '11') {
// 判断当前的滚动方向
var direction = currentY - startY > 0 ? '10' : '01';
/*
1.操作方向和当前允许状态求与运算,运算结果为0,就说明不允许该方向滚动,则禁止默认事件,阻止滚动
2.status为00,说明没有滚动条,此时无论direction是上还是下,都要阻止滚动
3.status为01,说明有滚动条,可以向下滚动,此时direction为01则符合向下滚动
4.status为10,说明有滚动条,可以向上滚动,此时direction为10则符合向上滚动
5.综上a.没有滚动条 b.滚动条在顶部但还向上滚动 c.滚动条在底部但还向下滚动 都要阻止滚动
*/
if (!(parseInt(status, 2) & parseInt(direction, 2))) {
stopEvent(e);
}
}
});
</script> $(function(){
// 让当前对象滚动到顶部
$("#name").click(function(){
setTimeout(function(){
document.getElementById("name").scrollintoview();// 参数可以是true, false, 空参数
}, 300);
});
// 让当前对象上面的元素滚动到顶部,使当前对象处于比较中间的位置
$("#age").click(function(){
setTimeout(function(){
document.getElementById("name").scrollintoview(); // 参数可以是true, false, 空参数
}, 300);
});
}); 最近的项目做得是混合开发,其实比较尴尬的啦,手机端的安卓与ios挺多兼容问题的。
1、手机端h5页面中输入法键盘会遮挡输入框的问题。
$('input').on('focus',function(event){
//自动反弹 输入法高度自适应
var target = this;
setTimeout(function(){
target.scrollIntoViewIfNeeded();
},100);
});
由于不同的输入法键盘高度不一致,这使得我们在开发当中要做很多兼容,但是针对不同的输入法键盘和不同的手机去做这样一个兼容是很耗费时间的。
像苹果手机就有自带的输入法,当我们使用自带的输入法时,键盘也许不会遮挡输入框,然而用户会使用各种各样的输入法。
所以,
jquery的scrollIntoViewIfNeeded()方法,可以做到将输入框移动至视野中。
从而解决了键盘遮挡文本输入框的问题。
2、模仿微信输入框失去焦点时隐藏iphone的软键盘和聚焦时出现输入框
function BlurOrFocus(){
var obj = document.getElementsByClassName('input');
vardocTouchend = function(event){
if(event.target!=obj){
setTimeout(function(){
obj.blur();
document.removeEventListener('touchend',docTouchend,false);
},1000);
}
}
if(obj){
obj.addEventListener('touchstart',function(){
document.addEventListener('touchend',docTouchend,false);
},false);
}
}
BlurOrFocus();
这里是实现了当手触碰到文本输入框之外的地方,就将输入法键盘隐藏。
页:
[1]