diff --git a/src/main/java/database/DataManagerInterface.java b/src/main/java/database/DataManagerInterface.java
new file mode 100644
index 0000000..fd3792d
--- /dev/null
+++ b/src/main/java/database/DataManagerInterface.java
@@ -0,0 +1,58 @@
+package database;
+
+import object.Seed;
+import object.User;
+import object.UserPT;
+import object.Notice;
+import object.BegInfo;
+import object.Post;
+import object.Profile;
+public interface DataManagerInterface{
+    public int RegisterUser(User userinfo);// 返回状态：0 success，1 邮箱重复，2其他原因
+    public int UpdateInformation(User userinfo);// 返回状态：0 success，1 不存在，2其他原因
+    public User GetInformation(String userid);// 返回用户的全部基本信息
+
+    public UserPT GetInformationPT(String userid);//返回用户的全部pt站信息
+    public int UpdateInformationPT(UserPT userinfo);//返回状态：0 success，1 邮箱重复，2其他原因
+    public int RegisterUserPT(UserPT userinfo);//返回状态：0 success，1 邮箱重复，2其他原因
+
+    public Seed GetSeedInformation(String seedid);//返回种子的全部信息;
+    public int RegisterSeed(Seed seedinfo);//添加一个新的种子，0成功，其他失败信息待定;
+    public int UpdateSeed(Seed seedinfo);//接收新的种子然后更新其全部属性;
+
+    public Seed[] SearchSeed(String userQ);//传入搜索的关键词或句子，返回搜索到的种子信息（按照公共字符数量排序）
+    
+    public int AddNotice(Notice notice);//返回状态：0 success，1 重复，2其他原因
+    public boolean UpdateNotice(Notice notice);//返回状态：0 success，1 重复，2其他原因
+    public boolean DeleteNotice(String noticeid);//删除公告，返回状态：0 success，1 重复，2其他原因
+
+    public int GetUserAvailableInviteTimes(String userid);//获取用户的剩余邀请次数
+    public int InviteUser(String inviterid,String inviteemail);//邀请用户，返回状态：0 success，1 重复，2其他原因
+
+    public boolean AddBegSeed(BegInfo info);//添加一个新的求种信息，返回状态：0 success，1 重复，2其他原因
+    public boolean UpdateBegSeed(BegInfo info);//更新一个求种信息，返回状态：0 success，1 重复，2其他原因
+    public boolean DeleteBegSeed(String begid);//删除一个求种信息，返回状态：0 success，1 重复，2其他原因
+    public boolean VoteSeed(String begid,String userid,boolean vote);//投票，返回状态：0 success，1 重复，2其他原因,vote=true表示赞成，vote=false表示反对
+    public int SubmitSeed(String begid,Seed seed);//提交种子，返回状态：0 success，1 重复，2其他原因
+    public void SettleBeg();//结算所有求种信息，求种信息中需要增加Beg截止日期，默认14天，期间投票>的则Beg成功，否则Beg失败，并发放对应奖励
+
+    public int AddPost(Post post);//添加一个新的帖子，返回状态：0 success，1 重复，2其他原因
+    public int UpdatePost(Post post);//更新一个帖子，返回状态：0 success，1 不存在,2其他原因
+    public int DeletePost(String postid);//删除一个帖子，返回状态：0 success，1 不存在,2其他原因
+
+    public int AddComment(String postid,String comment);//添加一个评论，返回状态：0 success，1 不存在，2其他原因
+    public int DeleteComment(String postid,String commentid);//删除一个评论，返回状态：0 success，1 不存在,2其他原因
+
+    public boolean AddCollect(String userid,String postid);//添加一个收藏，返回状态：0 success，1 不存在,2其他原因
+    public boolean DeleteCollect(String userid,String postid);//删除一个收藏，返回状态：0 success，1 不存在,2其他原因
+
+    public boolean ExchangeMagicToUpload(String userid,int magic);//将魔力值兑换为上传量，返回状态：0 success，1 不存在,2其他原因
+    public boolean ExchangeMagicToDownload(String userid,int magic);//将魔力值兑换为下载量，返回状态：0 success，1 不存在,2其他原因
+    public boolean ExchangeMagicToVip(String userid,int magic);//将魔力值兑换为VIP次数，返回状态：0 success，1 不存在,2其他原因
+
+    public boolean UploadTransmitProfile(Profile profile);
+    public Profile GetTransmitProfile(String profileid);//获取迁移信息
+    public boolean ExamTransmitProfile(String profileid,boolean result);//审核迁移信息,0成功，1失败
+    public Profile[] GetTransmitProfileList();//获取所有迁移信息
+
+}   
\ No newline at end of file
diff --git a/src/main/java/database/Database1.java b/src/main/java/database/Database1.java
new file mode 100644
index 0000000..9304fa5
--- /dev/null
+++ b/src/main/java/database/Database1.java
@@ -0,0 +1,5 @@
+package database;
+
+// public class Database1 implements DataManagerInterface {
+    
+// }
diff --git a/src/main/java/database/Database2.java b/src/main/java/database/Database2.java
new file mode 100644
index 0000000..2e37a99
--- /dev/null
+++ b/src/main/java/database/Database2.java
@@ -0,0 +1,5 @@
+package database;
+
+// public class Database2 implements DataManagerInterface {
+    
+// }
diff --git a/src/main/java/database/DatabaseMain.java b/src/main/java/database/DatabaseMain.java
deleted file mode 100644
index 78dda90..0000000
--- a/src/main/java/database/DatabaseMain.java
+++ /dev/null
@@ -1,8 +0,0 @@
-package database;
-
-public class DatabaseMain{
-    public static void main(String args[])
-    {
-        System.out.println("Hello Database"); 
-    }
-}
\ No newline at end of file
