[uq-dbdesign] Modificari baza de date.

Vlad Dogaru ddvlad at anaconda.cs.pub.ro
Sun Aug 12 16:23:48 EEST 2007


Sergiu Iordache wrote:
> Mai e o chestie de discutat. Din cate am invatat eu, orice tabel
> trebuie sa aiba un camp de id_ceva care sa fie unic si autoincrement.
> Daca noi o sa facem o sincronizare cu moodle, acolo o sa avem campuri
> unice dar nu o sa fie la rand. Asa ca propun sa facem un id_utilizator
> care e local, al tabelului si un id_moodle care corespunde cu cel din
> tabela de utilizatori din moodle.

Nu ştiu dacă am înţeles bine ce e asta, 
http://en.wikipedia.org/wiki/Surrogate_key, dar s-ar putea să ne fie de 
folos. Din text,
	„A surrogate key in a database is a unique identifier for either 	an 
entity in the modeled world or an object in the database. The 	surrogate 
key is not derived from application data.”
Dacă utilizatorii sunt aceiaşi, probabil s-ar califica drept o 
„entitate”, aşa cum e numită în text, şi deci ar putea fi subiectul unei 
astfel de cheie surogat. Problema e că:

1. Probabil nu am înţeles eu corect.
2. E greu de folosit şi eu arunc cu concepte în toate părţile, deşi nu 
ştiu mai nimic despre baze de date.
3. MySQL ar putea avea suport limitat pentru aşa ceva. Nu că ar fi mai 
prost decât alte sisteme (again, I have no idea), dar am înţeles că 
diferă destul de mult între ele implementările.
4. E posibil să nu poată fi folosit conceptul decât pentru tabele ale 
aceleiaşi baze de date, caz în care suntem în pom.

Altceva ce mă frământă este: cheia primară, din ce am înţeles eu, 
trebuie să fie unică şi NOT NULL, dar nu e nevoie să fie auto-increment. 
Nu ar putea fi cheia primară din tabelul de utilizatori uso-quest o 
cheie străină care să refere cheia primară din tabelul de utilizatori 
Moodle? Ar fi mai multe query-uri pentru bazele de date, dar, în fond, 
asta e caracteristica principală a sistemelor de baze de date: sunt 
optimizate pentru trafic foarte mare.

Scuze că îmi dau cu părerea pe lângă (probabil), dar nu pot să tac 
atunci când am o idee (da, e un defect). Poate cu ocazia asta învăţ şi 
eu mai multe despre baze de date.

Vlad

-- 
Number one reason to date an engineer:
The world does revolve around us; we pick the coordinate system.



More information about the wouso-dev mailing list