Db içine infinit çalma (diziler) tasarrufu için en iyi yolu?

2 Cevap php

Yani müşteri bana "1,23,23,abc,ggg,544,tf4," kullanıcı 12 gibi bir dize verir. Sadece değer, değer ... yapı boşluksuz elemanların sayısını Orada INFINIT edilebilir. Ben (kullanıcılar uid (anahtar), adları vb) kullanıcıların tablo var. Ben (SID (anahtar), HariciID, vb değerler) ile akarsu tablo var. Kullanıcı beni HariciID en gönderir. Ve ben çalma listesine hawe HariciID ait (benim Sid) gerekir. Benim DB içine böyle dizisini saklamak ve DB onu elde edebilmek için bir yol gerekir.

Ben 2 şey yapmak gerekiyor

  1. kullanıcıya geri böyle dize döndürmesi
  2. gibi ondan dizi na almak mümkün olacak {1; 23; 23; abc; ggg; 544; tf4;}

Yani (en iyi burada) kodu shourt (küçük bir miktar anlamına gelir) en iyi yöntem nedir

  1. db içine bu tür verileri saklamak için
  2. gösterilen Bouth şekilde saklanabilir tata retrivew için

2 Cevap

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

ve

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

id her kullanıcı için bir liste sipariş için kullanılır, bu yüzden olacak, sadece bu sorgu kullanmak, onu almak istiyorsun eğer: SELECT value FROM VALUE WHERE user_id = 12 ORDER BY id

Bu klasik bir-çok ilişkisi var. Bir kullanıcı birçok vardır external ids:

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

Kullanıcıya bağlı her türlü dış id almak için sadece aşağıdaki sorguyu çalıştırın:

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