Phpmyadmin 2

Phpmyadmin 2

Re: phpMyAdmin 2.7

CREATE grupuri TABLE (
gid tinyint (3) nesemnate NOT NULL auto_increment COMMENT "numărul grupului",
gname varchar (50) NOT NULL implicit '' COMMENT 'name',
gabout tinytext COMENT "informații suplimentare",
TASTA PRIMARA (gid)
) MOTOR = MyISAM DEFAULT CHARSET = koi8r;

CREATE TABLE moders (
muid int (11) NOT NULL implicit '0' COMMENT 'numărul de utilizator',
mgid int (11) NOT NULL implicit '0' COMMENT 'numărul grupului',
mact enum ('y', 'n') NOT NULL implicit 'y' COMMENT 'este activ. Pentru a evita scufundările în chei ",
TASTĂ PRIMARĂ (muid, mgid)
) MOTOR = MyISAM DEFAULT CHARSET = koi8r;

CREATE TABLE utilizatori (
uid smallint (5) nesemnate NOT NULL auto_increment COMMENT 'numărul de utilizator',
ulogin varchar (20) NOT NULL default '' COMENT login ',
upass varchar (23) NOT NULL default '' COMMENT 'parola',
uname varchar (50) NOT NULL implicit '' COMMENT 'name',
uinfo tinyblob COMMENT "informații suplimentare",
ucity varchar (20) implicit NULL COMMENT "orașul de locație",
ucountry varchar (20) implicit NULL COMMENT "țară",
uicq varchar (12) implicit NULL COMMENT 'Numărul ICQ. Va fi necesar să se facă numărul pentru jabber ",
ugender enum ('f', 'm') implicit NULL COMMENT 'sexul utilizatorului. în principiu, un câmp opțional, dar lăsați-l să fie "
uemail varchar (50) implicit NULL COMMENT "săpun utilizator. trebuie să fie pentru recuperarea parolei ",
utoor enum ('y', 'n') NOT NULL implicit 'n' COMMENT 'admin sau nu. va fi necesar să faceți ceva, deoarece infa este dublată, chiar și cea specială. tabelul moders este. '
('y', 'n') NOT NULL implicit 'n' COMMENT 'interzis sau nu',
TASTĂ PRIMARĂ (uid)
) MOTOR = MyISAM DEFAULT CHARSET = koi8r;

ZY există încă un tabel de averi, cu averi, dar este opțional.

zzy bine și așa cum am spus, moderii de tabel pot fi aruncați din cauza prezenței pavilionului utoor în utilizatori.

Re: phpMyAdmin 2.7

Ce ar face atunci o masă? Mesaje și toate. Ce mai e ceva. )

Phpmyadmin 2

Re: phpMyAdmin 2.7

dar poți să faci fără mese, scrie-ți expresii pe o bucată de hârtie și trimite-te reciproc la poștă =)))

Re: phpMyAdmin 2.7

Am greșit, dar am avut sarcina de a crea un forum flexibil, cu un număr arbitrar de subiecte / nivele și cu "lanțuri" de mesaje, așa că a trebuit să pervesc și să dispensez cu două mese :-)

temele / mesajele sunt în esență aceeași ordine a lucrurilor și sunt combinate într-un singur tabel, fiecare intrare conține legături către "cap", mesajul anterior (și pentru eficiență și toate asociate cu acesta, unul dintre câmpuri stochează o listă a ID-urilor de mesaje asociate)

Re: phpMyAdmin 2.7

doar de dragul interesului a mers la phpMyAdmin din portalul nostru și a analizat numărul de tabele din baza de date, care este conectat la CMS. 116 de tabele; și 236406 de înregistrări în total.

Phpmyadmin 2

Re: phpMyAdmin 2.7

dar care poate oferi o soluție elegantă la această problemă. Există mai mulți "copaci" de mesaje. Este necesar să se afișeze numărul de mesaje din fiecare ramură și arborele copac și FAST pentru a le actualiza dinamic atunci când adăugați mesaje către orice loc din arbore. Traversarea recursivă a copacului este întotdeauna prea grea. Stocarea ID-urilor din toate ramurile conexe din fiecare ramură și calculul lor nu este potrivit - deoarece există mai mulți copaci. Mai multe opțiuni?

Phpmyadmin 2

Re: phpMyAdmin 2.7

mysql> a crea baza de date refresh;
Interogare OK, 1 rând afectat (0,00 sec)

mysql> folosiți reftest;
Baza de date sa schimbat
mysql> crează tabelul refmaster (
-> mijlocul int nu este null cheie primară auto_increment,
-> mname varchar (20) nu este null) type = innodb;
Interogare OK, 0 rânduri afectate (0.16 sec)

mysql> crea refslave tabel (
-> sid int nu este null,
-> stext tinytext nu este null,
-> cheie străină (sid) referințe refmaster (mijloc)) type = innodb;
EROARE 1005: Nu se poate crea tabelul "./reftest/refslave.frm" (errno: 150)
mysql> crea refslave tabel (
-> sid int nu referințe null refmadter (mid),
-> stext tinytext nu este null) type = innodb;
Interogare OK, 0 rânduri afectate (0.03 sec)

mysql> introduceți în valorile refaster ("", "hi");
Interogare OK, 1 rând afectat (0.01 sec)

mysql> inserați în valorile refslave ("5", "hello");
Interogare OK, 1 rând afectat (0.01 sec)

Este integritatea referențială?

sau pot face ceva greșit?

ZY pe ideea, el este în al doilea inserat să strige cu un partener bun că nu există un astfel de indice, hrean.

Re: phpMyAdmin 2.7

Deci, problema este de a colecta numărul de "ramuri" în fiecare subtree. Se rezolvă "în frunte" prin COUNT recursiv din toate ramurile situate "sub" și salvând acest COUNT în înregistrarea fiecărei sucursale ca numărător (actualizați-l numai când adăugați un mesaj nou). Dar este și greu. Aveți nevoie de o soluție mai ușoară.

Re: phpMyAdmin 2.7

bine, atunci este probabil mai potrivit pentru a face Id contoare independente, care va scădea / crește atunci când șterge / adăugarea intrări pentru toate grupurile în care se încadrează în. Principiul contorului nu este necesar, adică pur și simplu măriți / micșorați numărul pentru toți cei care îndeplinesc condiția

Re: phpMyAdmin 2.7

Re: phpMyAdmin 2.7

> SELECT MAX (id) din tabelul WHERE parrent_id == x

Pentru a ucide este nevoie de oameni inteligenți care încearcă să se angajeze în calcule de câmpuri auto-incrementale! Am deja. Îmi scot rahat după elevii care au rivetat tot felul de "selectați * din înregistrare unde id =: some_id-3"

Articole similare