小编Ang*_*ge1的帖子

重新设计数据库成本和建议

我正在使用的 Web 应用程序有一个巨大的数据库,它真的一团糟,没有外键,没有约束,没有索引,没有优化,没有规范化,什么都没有。到目前为止,逻辑一直是:如果您需要一个字段,则添加它,如果您需要一个表,则尽可能快地创建它。一开始,我无法理解这些错误的严重性,但不得不一直处理由坏数据库造成的障碍,这让我决定重新设计整个数据库。我需要知道的是:

  1. 我应该从哪里开始,规范化,添加键和索引,还是其他地方?
  2. 由于这些更改的成本对我的工作来说是巨大的(我将不得不从头开始重新设计整个代码以适应它),是否值得?我的意思是,这么大的事情有什么利弊(我说巨大,因为我是数据库问题的初级水平)。如果有人可以指导我,那就太棒了

database-design sql-server database-recommendation

4
推荐指数
1
解决办法
283
查看次数

过程是删除数据而不是插入

我有一个程序如下:

create procedure MoveDailyData
    @date1 bigint
    as
    declare @datenow bigint
    set @datenow = datediff(S,'01/01/1970',getdate())
    if ((@datenow)-@date1)>=86400
    begin
     insert into FinalLogs(problem,channel_number,username,app_id,Is_On,logtype,viewing_channel,playtime,macaddress,wifimacaddress,seen,version,date) 
     select problem,channel_number,username,app_id,Is_On,logtype,viewing_channel,playtime,macaddress, wifimacaddress,seen,version,date from DayTempTable
     delete from DayTempTable where (@datenow-@date1)>=86400
     end
     else select 'Not Yet';
Run Code Online (Sandbox Code Playgroud)

该过程应将数据从 1 个临时表复制到最后一个(按每日计划),然后从临时表中删除该数据。相反,我注意到每隔几天,数据不会被复制,而只是从临时表中删除,因此我丢失了大量相关数据。该date列是一个bigint(日期另存为unix time)。在这个过程中我做错了什么吗?

sql-server stored-procedures

2
推荐指数
1
解决办法
129
查看次数