开发者

Best way for saving infinit playlists (arrays) into db? (php mySql)

So client gives me a string like "1,23,23,abc,ggg,544,tf4," from user 12 . There can be infinit number of elements with no spaces just value,value,... structure. I have users table (with users uId(key), names etc). I have streams table with ( sId(key), externalID, etc values). User sends me externalId's. And I need to hawe externalId's in play list (not my sId's). I need some way to store such ar开发者_运维技巧ray into my DB and be able to get it from DB.

I need to be able to do 2 things

  1. return such string back to user
  2. be able to get na array from it like {1; 23; 23; abc; ggg; 544; tf4;}

So what is best method (best here means shourt(small amount of) code)

  1. to store such data into db
  2. to retrivew stored tata in bouth ways shown


I think, something like this should work:
User: user_id Value: user_id, value, id
And according to your example 1,23,23,abc,ggg,544,tf4 from user 12, you will have:

TABLE User  
user_id  
12

and

TABLE Value  
user_id | value | id  
12      | 1     | 0  
12      | 23    | 1  
12      | 23    | 2  
12      | ggg   | 4  
12      | abc   | 3  
...

id will be used for ordering list for each user, so if you want do retrieve it, just use this query: SELECT value FROM VALUE WHERE user_id = 12 ORDER BY id


That's a classical one-to-many relationship. One user has many external ids:

User:         id, name
UserExternal: user_id, id # both fields as PK, id as CHAR

To fetch every external id connected to the user just execute the following query:

SELECT u.id, u.name, ue.id AS external
FROM user u
LEFT JOIN user_external ue ON u.id = ue.user_id
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜