我正在创建一个Web应用程序,列出申请人及其在等候名单上的位置。
我们需要能够将新申请人添加到此列表中,并从列表中删除申请人。名单中将有不到10万名申请人。
具体细节:
我计划在Golang中编写应用程序。
列表需要安全,程序关闭,应该可以恢复。
应用程序应包含每个申请人的此数据:姓名,学生ID,职位。
问题:
我需要你的帮助!
更新
样机代码:
package main
import (
"log"
"sync"
"time"
"github.com/boltdb/bolt"
)
type applicant struct {
FirstName string
LastName string
StudentID string
Position int
}
type priorityList struct {
sync.Mutex
applicants []applicant
}
func (l *priorityList) newApplicant(fn string, ln string, sid string) error {
// add applicant to priorityList
return nil
}
func (l *priorityList) removeApplicant(sid string) error {
// remove applicant from priorityList
return nil
}
func (l *priorityList) editApplicant(sid string) error {
// edit applicant in priorityList
return nil
}
func main() {
// Database
db, err := bolt.Open("priorityList.db", 0600, &bolt.Options{Timeout: 1 * time.Second})
if err != nil {
log.Fatal(err)
}
defer db.Close()
}
答案 0 :(得分:0)
答案 1 :(得分:0)
有很多方法。您可以使用文件并使用Go互斥锁或系统锁保护它。您可以将内存映射到文件以获得性能。您可以使用BoltDB,这是一个很好的软件和平,并提供所需的机器,可以在进程中工作。如果你写的很少并且大部分是读的,那么常数DB https://github.com/colinmarc/cdb看起来也很有趣。 但是,经典的SQL DB有一些优点