2017-12-12 121 views
5

Tôi có 2 bảng. bảng USER với tất cả các chi tiết cá nhân và TWEETTABLE với tất cả các tweet từ timeline của người dùng lấy thông qua twitter apiBảng lồng nhau trong mysql

bảng tài

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 

gì tôi thực sự thực sự muốn là:

 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 

tức là một bảng bên trong một cột. Cột 1 sẽ có id người dùng và cột hai với tất cả timeline twitter tương ứng của ông details.I có lẽ có thể làm điều này trong oracle bằng cách làm này:

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) 
); 

và sử dụng bên trong cột twitter_details như một bảng lồng nhau

CREATE TABLE TWEETTABLE 
(id INT, 
    twitter_details tweet_typ 
    ); 

và sau đó chèn

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

Nhưng Mysql không cho phép lồng nhau tables.So làm thế nào tôi có thể xác định tweettable như một đối tượng và làm cho nó một bảng lồng nhau bên trong col umn twitter_details trong mysql?

Trả lời

0

Bạn không thể làm điều đó, nhưng bạn có thể làm theo cách mọi người làm. Chỉ cần xác định

tweettable 

như

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

bạn thêm 2 cột. Một (có thể được autoinc) tweetID và một userID, liên quan đến người dùng đã twitted.

Sau đó, bạn sẽ có được kết quả của bạn với gia

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

Better sử dụng cross-bàn. Ví dụ: "users_tweets". cấu trúc bảng:

user_id | tweed_id 

đâu user_id - đó là id từ 'tweet_id' 'user_table' và nó là 'id' từ tweettable

hoặc

user_id | tweet_name 

cách khác - chuyển đổi twitter_details để chuỗi:

$strDetails = json_encode($twitter_details) 

và chèn chuỗi này $strDetails vào cơ sở dữ liệu

Các vấn đề liên quan