lims
1.0.0
يحتوي lims، وهو اختصار لعبارة "نظام إدارة معلومات المكتبة"، على جميع الوظائف اللازمة لإدارة وظائف مكتبة العالم الحقيقي. يحتوي على 4 جداول تستخدم لإدارة البيانات المختلفة
CREATE TABLE Book (
" book_id " varchar ( 1200 ) PRIMARY KEY ,
" isbn " varchar ( 1200 ) NOT NULL ,
" title " varchar ( 1200 ) NOT NULL ,
" subtitle " text ,
" author " varchar ( 1200 ) NOT NULL ,
" published " varchar ( 1200 ) NOT NULL ,
" publisher " varchar ( 1200 ) NOT NULL ,
" pages " int ,
" description " text ,
" image_url " varchar ( 1200 ),
" reviews " int ,
" rating " float
);
CREATE TABLE RegUser (
" user_id " varchar ( 200 ) PRIMARY KEY ,
" first_name " varchar ( 200 ) NOT NULL ,
" last_name " varchar ( 200 ),
" gender " varchar ( 200 ) NOT NULL ,
" email " varchar ( 200 ) UNIQUE NOT NULL ,
" password " varchar ( 200 ) NOT NULL ,
" is_admin " boolean NOT NULL
);
CREATE TABLE Review
(
" review_id " varchar ( 200 ) PRIMARY KEY ,
" user_id " varchar ( 200 ) NOT NULL ,
" book_id " varchar ( 200 ) NOT NULL ,
" comment " text ,
" rating " int ,
" date " varchar ( 200 ),
" edited " boolean
);
CREATE TABLE BookIssue
(
" issue_id " varchar ( 200 ) PRIMARY KEY ,
" user_id " varchar ( 200 ) NOT NULL ,
" book_id " varchar ( 200 ) NOT NULL ,
" issue_date " varchar ( 200 ),
" return_date " varchar ( 200 ),
" returned " boolean
);
ALTER TABLE Review ADD FOREIGN KEY ( " user_id " ) REFERENCES RegUser ( " user_id " );
ALTER TABLE Review ADD FOREIGN KEY ( " book_id " ) REFERENCES Book ( " book_id " );
ALTER TABLE BookIssue ADD FOREIGN KEY ( " user_id " ) REFERENCES RegUser ( " user_id " );
ALTER TABLE BookIssue ADD FOREIGN KEY ( " book_id " ) REFERENCES Book ( " book_id " );
تم بالفعل تنفيذ عدد قليل من الوظائف الأساسية ويمكن تنفيذ وظائف أخرى أو البناء عليها. تشمل جميع الوظائف المنفذة
GetBookById
AddBook
DeleteBook
SearchBook
GetReviewsOfBook
IssueBook
GetIssueById
GetBooksIssuedByUser
Connect
AddEditDeleteReview
AddAndDeleteUser
SearchUser
يتم استدعاء طريقة Connect()
الخاصة بـ db/db.go
داخل main.go
للاتصال بقاعدة البيانات المحلية أو السحابية وإنشاء نسخة متغيرة عامة Lib
والتي يمكن أن يستخدمها مستخدم خارجي للتفاعل مع مثيل قاعدة البيانات بناءً على الوظيفة المتاحة.
تحتوي هذه الملفات داخل db
على تعليمات برمجية تتفاعل مباشرة مع قاعدة البيانات والتي بدورها توفر الطرق الموضحة أعلاه. يجب إضافة أي طريقة جديدة هنا والاختبار أيضًا.