[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