Biblioteka/notatki/propozycja_bazy

39 lines
4.2 KiB
Plaintext

jakoś trzeba mieć userów (hasła możesz sprawdzać w ldap - jeśli chcesz
w ldap trzymać więcej to poprawimy tę tablicę lub jej nie będzie. Ale
teraz jest).
CREATE TABLE "user" ("user_id" INTEGER PRIMARY KEY AUTOINCREMENT NOT
NULL , "user_fname" varchar, "user_lname" varchar, "user_login"
varchar NOT NULL UNIQUE , "user_enabled" integer NOT NULL DEFAULT 1)
Prosta tablica do opisu autorów
CREATE TABLE "author" ("author_id" integer PRIMARY KEY AUTOINCREMENT
NOT NULL UNIQUE , "author_fname" VARCHAR, "author_lname" varchar NOT
NULL );
Tablica opisująca książki
CREATE TABLE "book" ("book_id" integer PRIMARY KEY AUTOINCREMENT NOT
NULL UNIQUE ,"book_isbn" integer NOT NULL ,"book_title" varchar NOT
NULL, "owner_user_id" integer NOT NULL )
owner_user_id - właściciel - ale jeśli moze być wielu współwłaścicieli
to można zrobić jak z autorami. Napisz czy może być wielu właścicieli
- a możę trzeba się zastanowić czy trzymać historię - jeden właściciel
może sprzedać książkę innemu...
Tablica opisująca powiązanie (relację) książki i autorów.
CREATE TABLE "main"."book_author" ("author_id" integer NOT NULL ,
"book_id" integer NOT NULL , PRIMARY KEY ("author_id", "book_id"))
Tablica opisująca komentarze
CREATE TABLE "book_comment" ("book_comment_id" INTEGER PRIMARY KEY
AUTOINCREMENT NOT NULL , "book_comment_body" VARCHAR, "user_id"
INTEGER NOT NULL , "book_comment_date" DATETIME DEFAULT
CURRENT_TIMESTAMP, "book_comment_canceled" INTEGER NOT NULL DEFAULT 0)
możebyć wiele opisów mogą przyrastać itp itd - zastanawiam się nad
book_comment_type (np. co jest recenzją itp - ale na razie zostawmy).
Trzeba jeszcze opisać początkowy status książki oraz historię
wypożyczania itp.
podeślę