2017-12-12 168 views
5

Mam 2 tabele. tabeli użytkownika z wszystkimi danymi osobowymi i TWEETTABLE ze wszystkimi tweets z osi czasu użytkownika pobierane przez API TwitteraZagnieżdżona tabela w mysql

stół użytkownika

id|twitter_user_name|firstname|lastname|email 
----------------------------------------------- 
    1 | @johnsmith  |john  |smith |[email protected] 

tweettable

name|scr_name|tweets  |created_at_ |followers_count 
---------------------------------------------------------- 
CNN |CNN  |*tweet text*| 14nov 12:32| 38713286 

co faktycznie rzeczywiście chcą się:

 id|   twitter_details        | 
    -----|------------------------------------------------------- | 
     |name |scr_name|tweets  |created_at_ |followers_count| 
     | ----|--------|------------|------------|-------------- 
    1 | CNN|CNN  |*tweet text*| 14nov 12:32| 38713286 | 
    ----|------------------------------------------------------ 
    2 | BBC|BBC  |*tweet text*| 14Nov 16:43| 38713254 | 
    ----|-----|--------|------------|------------|---------------|------ 
    3 

czyli tabela wewnątrz kolumny. Kolumna 1 będzie miał identyfikator użytkownika i dwie kolumny ze wszystkimi jego odpowiadającego twitter osi czasu details.I można chyba zrobić to w Oracle wykonując to:

CREATE TYPE tweet_typ AS OBJECT 
( 
name VARCHAR2(20), 
scr_name VARCHAR2(25), 
tweets text, 
created_at timestamp; 
followers count VARCHAR2(25) 
) 
MEMBER PROCEDURE display_details (SELF IN OUT 
twitter_typ) 
); 

i użyć tego wewnątrz kolumny twitter_details jako tabela zagnieżdżonej

CREATE TABLE TWEETTABLE 
(id INT, 
    twitter_details tweet_typ 
    ); 

a następnie włóż

INSERT INTO TWEETTABLE 
    VALUES (1,twitter_typ (--extracted values goes here--)); 

Ale Mysql nie pozwala zagnieżdżony tables.So jak mogę określić tweettable jako przedmiot i czyni go zagnieżdżonej tabeli wewnątrz kol umn twitter_details w mysql?

Odpowiedz

0

Nie możesz tego zrobić, ale możesz zrobić tak, jak wszyscy. Wystarczy zdefiniować

tweettable 

jak

tweetID | userID |name|scr_name|tweets  |created_at_ |followers_count 
---------------------------------------------------------- 
    1   1 CNN |CNN  |*tweet text*| 14nov 12:32| 38713286 

dodać 2 kolumny. Jeden (może być autoinc) tweetID i jeden identyfikator użytkownika związany z użytkownikiem, który sknocił.

Wtedy masz swój wynik z przyłączyć

select * from user u join tweettable t where u.id = t.userID; 
0

lepiej wykorzystać tabelę krzyżową. Na przykład "users_tweets". Struktura tabela:

user_id | tweed_id 

Gdzie user_id - to id z 'user_table' i 'tweet_id' to 'id' z tweettable

lub

user_id | tweet_name 

inny sposób - konwersja twitter_details do ciąg:

$strDetails = json_encode($twitter_details) 

i wstaw ten ciąg $strDetails do bazy danych