Jump to content
php.lv forumi

selektot katru otro datu


anonīms

Recommended Posts

Tātad, ja ir tiešām dati kā tabulā, kad vienai spēlei id ir nepāra skaitlis, bet otrai pāra, tad tas ir vienkārši:

mysql> create table a (id integer,
-> `kas_spele` int(11) NOT NULL default '0',
-> `pret_ko_spele` int(11) NOT NULL default '0');
Query OK, 0 rows affected (0.11 sec)

mysql> create table b (id integer,
-> `kas_spele` int(11) NOT NULL default '0',
-> `pret_ko_spele` int(11) NOT NULL default '0');
Query OK, 0 rows affected (0.11 sec)

mysql> insert into a values (1, 2, 1);
Query OK, 1 row affected (0.05 sec)

mysql> insert into a values (2, 1, 2);
Query OK, 1 row affected (0.05 sec)

mysql> insert into b values (1, 5, 4);
Query OK, 1 row affected (0.05 sec)

mysql> insert into b values (2, 4, 5);
Query OK, 1 row affected (0.06 sec)

mysql> insert into a values (3, 2, 3);
Query OK, 1 row affected (0.05 sec)

mysql> insert into a values (4, 3, 2);
Query OK, 1 row affected (0.05 sec)

mysql> SELECT a.*, 1 tag FROM a
-> WHERE mod(id, 2) = 0
-> UNION ALL
-> SELECT b.*, 2 tag FROM b
-> WHERE mod(id, 2) = 0;
+------+-----------+---------------+-----+
| id   | kas_spele | pret_ko_spele | tag |
+------+-----------+---------------+-----+
|	2 |		 1 |			 2 |   1 |
|	4 |		 3 |			 2 |   1 |
|	2 |		 4 |			 5 |   2 |
+------+-----------+---------------+-----+
3 rows in set (0.00 sec)

tag var raut nost, tas vienkārši rāda, no kurienes nāk dati.

 

BET problēma iestāsies, kad būs tādu vai citādu iemeslu dēļ kāda nobīde un pēkšņi viens ieraksts būs ar id = 171 un otrs pāra ieraksts ar id = 173. OK es pieņemu, ka varbūtība ir maza, bet nu uz id pāra nepāra es īpaši nepaļautos. Problēma faktiski ir tabulu dizainā, ka nevar viennozīmīgi pilnīgi droši identificēt otru pāri. Es to pieliktu kā vēl vienu kolonu - pāra identifikators, kuram var izmantot kaut vai pirmā ieraksta id, ko droši iegūst pēc tam, kad pirmais ieraksts ir pievienots.

uzskatāmāk:

Spēles id | pāra id

1 | 1

2 | 1

3 | 3

4 | 3

167 | 167

183 | 167

 

šajā gadījumā es gan no 167 spēles varu viennozīmīgi atrast otru pāri meklējot tādu, kuram pāra id = 167 un spēles id <> 167, kā arī no otras puses, ja man ir 183 spēle, tad es meklēju tādu, kuram pāra id = 167 un spēle id <> 183.

Šai gadījumā tad arī varetu rakstīt, ka atlasa visas spēles, kam id un pāra id sakrīt.

Bet nu kamēr neatsinhronizējas id nepāris/pāris tikmēr jau laikam OK, pareizāk izsakoties pat kamēr pa vidu spēles pārim neielec kāds cits ieraksts vai nerodas kāda neizmantota id vērtība.

 

Gints Plivna

http://datubazes.wordpress.com

Link to comment
Share on other sites

Bet nu kamēr neatsinhronizējas id nepāris/pāris tikmēr jau laikam OK, pareizāk izsakoties pat kamēr pa vidu spēles pārim neielec kāds cits ieraksts vai nerodas kāda neizmantota id vērtība.

Un tas noziimee ka vinjam ir nepareiza DB logjika, jo vienmer var sanakt kaadu ierakstu izdzeest, teiksim trivials gadijums : tiek nepareizi ievadiiti dati (nodubleti) un ierakstu nakas dzeest ...

// a nodublet ierakstu ir vieglak par vieglu, ja speles buus daudz, tad sadu kljudu pielaist ir vieglak par vieglu --> rezultaataa ierakstu naksies dzeest (kas pats par sevi nebuutu nekas tragisks, ja vien DB logjika ir pareiza ...

---

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...