Zweryfikowanie schematu + Ustalenie zapytania

0

Witam,

Mam problem (nie umiem) zaprojektować wzorca bazy. Nie wiem czy to co stworzyłem się nadaje?
Baza ma zawierać X pytań, wraz z 4 odpowiedziami dodatkowym utrudnieniem jest segregacja pytań ze względu na poziom trudności. Dodatkowo pytania mogą być w różnych wersjach językowych.

Schemat stworzony w accesie, gdyż łatwiej mi w nim tworzyć relację - baza docelowa ma zostać stworzona w sqlite - aplikacja która będzie ją obsługiwać jest pisana w c#.

Aplikacja która będzie korzystać z bazy ma na wejściu dostawać tylko 2 informacje język i poziom trudności a pytanie powinno być losowe - czy istnieje możliwość stworzenia takiego zapytania do bazy?

Wszelka pomoc mile widziana :))

0

sprawdz czy działa w Sqlite:

SELECT * FROM table ORDER BY RANDOM() LIMIT 1;
0
  1. Sqlite posiada rand()
    ,,random() The random() function returns a pseudo-random integer between -9223372036854775808 and +9223372036854775807."
  2. zakres jest automatycznie regulowany do liczby rekordów? czy np może wylosować liczbę poza tablicy?
  3. Tylko jest taki problem że ja z góry nie wiem gdzie on ma szukać rekordu wszystko zależy od aktualnie ustalonego języka i poziomu.

dany język -> poziom trudności -> odpowiednie rekordy

dlatego nie wiem czy mój schemat jest dobry ;<

PS: ,,zadanie" dodałem ale nie wiem czy jest potrzebna tak jak mówię na wejściu mam tylko liczbę która określa poziom trudności i jaki język jest ustalony. Na podstawie tych 2 danych poprzez zapytanie ma odnaleźć odpowiednie rekordy i spośród nich wylosować 1.

1

proponuje tak:

CREATE TABLE level (
  id     INTEGER PRIMARY KEY, 
  level TEXT 
);

CREATE TABLE language(
  id     INTEGER PRIMARY KEY, 
  language TEXT 
);

CREATE TABLE question(
  id     INTEGER PRIMARY KEY, 
  question TEXT, 
  answer1 TEXT,
  answer2 TEXT,
  answer3 TEXT,
  id_level INTEGER,
  id_language INTEGER,
  FOREIGN KEY(id_level) REFERENCES level (id),
  FOREIGN KEY(id_language) REFERENCES language(id)
);

SELECT * FROM question where id_level =1 and id_language =1 ORDER BY RANDOM() LIMIT 1;

http://www.tutorialspoint.com/sqlite/sqlite_c_cpp.htm

1 użytkowników online, w tym zalogowanych: 0, gości: 1