Postovani,
napravio sam sledece tabele:
 
Tabela: "korisnici":
    id         INT
    ime        VARCHAR(45)
    prezime        VARCHAR(60)
    email        VARCHAR(100)
    korisnicko_ime    VARCHAR(45)
    biografija    TEXT(1000)
    datum_rodj    DATE
    drzava_rodj    VARCHAR(45)
Tabela: "statusi":
    
    id        INT
    naslov_statusa    VARCHAR(60)
    tekst_statusa    TEXT(1000)
    vreme_objave    DATETIME
    korisnik_id    INT
E sada imam dilemu kako da osmislim trecu tabelu, koja bi predstavljala "prijateljstva" izmedju korisnika?
| BoxROx 24.02.2015Одељци: Зид Питања и одговори Ивица BoxROx              | Кључне речи: drustvena mreza social networking baza database Базе података mysql IT Akademija | 
                        
                            
                        
                        1
                        
                            
                        
                     | 
Мислим да си добро почео, само дефиниши примарне и стране кључеве и мислим да би било добро да id буде AUTO_NUMBER.
Табела која повезује пријатеље би могла бити дефинисана на следећи начин:
CREATE TABLE prijateljstva(
    korisnik_id INT NOT NULL,
    prijatelj_id INT NOT NULL,
    PRIMARY KEY(korisnik_id, prijatelj_id),
    FOREIGN KEY (korisnik_id) REFERENCES korisnici(id) ON DELETE CASCADE,
    FOREIGN KEY (prijatelj_id) REFERENCES korisnici(id) ON DELETE CASCADE
)ENGINE=InnoDB;
Имаш кориснике са id бројевима 1, 2 и 3. Ако корисник један има пријатеље 2 и 3,  табела пријатељства би требало да садржи редове:
1,2
1,3
2,1
3,1
За добијање свих пријатеља корисника један:
SELECT prijatelj_id FROM prijateljstva WHERE korisnik_id = 1;
Претпостављам да користиш MySQL, па отуда ENGINE=InnoDB. MySQL користи више различитих енџина. InnoDB треба користити тамо где су потребне трансакције и провера референцијалног интегритета, односно готово увек. Свакако, MySQL није једини сервер базе података отвореног кода, а по мом мишљењу није ни најбољи. Углавном, када могу да бирам, ја бирам PostgreSQL, тако да сајт пројекта Библиотека++ у позадини користи PostgreSQL.
Заинтересовани за часове програмирања могу ме контактирати путем мејла [email protected]
| Ивица 25.02.2015Одељци: Зид Питања и одговори Ивица | 
                        
                            
                        
                        0
                        
                            
                        
                     | 
©Библиотека++ 2025 Развој сајта Ивица Лазаревић