Içine bir çok kullanıcı oluşturulan öğeleri toplayarak "genel"

0 Cevap php

Kullanıcıların envanter öğeleri can ve örneğin, ona çeşitli nitelikleri uygulamak bir site inşa ediyorum. fotoğraflar, URL'ler, yorum, vb

I have a database structure of three tables: users, entries, associations.

Tablolar aşağıdaki alanları vardır:

users
id | joined | email | salt | password

entries
id | created | creator | type | value

associations
id | created | creator | type | node1 | node2

İşte sitenin fonksiyonu bir arıza:

Users adding items to their inventory
All user-created items go in entries with a type of 'item'. A row is added to associations with type 'possession', node1 users.id and node2 entries.id. This associations row is how I would (using INNER JOIN entries) pull and display a user's inventory (not just pulling all entries where creator = users.id, because a user may create an item they don't own).

Adding attributes to items
This part is what seems to throw off everyone I explain things to. An "attribute" is really just another item. In this way, it basically renders a user-created free-form hierarchy. E.g., You may 'tag' For Whom The Bell Tolls with "Book", and Book is another item (whether or not it's in the user's inventory matters not). To makes this work, I just add another row to the associations table with type 'tag' and node1 entries.id (parent item) and node2 entries.id ('tag' or child item). Remember than an entry may also be a url, comment, photo, etc, it would just depend on entries.type. Now I can pull all an items attributes. Eg, all photos: ($item_id = page I'm looking at) "SELECT * FROM entries INNER JOIN associations ON associations.node1 = $item_id AND associations.node2 = entries.id AND entries.type = 'photo'.

Ben bütün bir öğenin yorumlarını çekmek için benzer bir sorgu kullanabilirsiniz, url var, ne olursa olsun. Bu bana tertiplerinden, ve sahipleri, öğeler ve yorumlar, yorum ve görüşleri (cevaplar) ilişkilerinin bir sıvı sistemi oluşturmak için olanak sağlar.

Ben bir madde örneğin birçok kullanıcı tarafından oluşturulan girdileri zamanlar benim sorudur., "MacBook" ne, agrega birleştirme birleşmek ya da ancak başka bir genel öğenin içine, tüm bu bireysel öğeler diyoruz için en iyi yol olacaktır , eğer sen kullanıcılar tarafından oluşturulan veri tüm bu parçaları bir bilgi yığın böylece.

Yine, topluca, bu kullanıcıların sadece yanlış yapıyorsun vb "mac kitap" "Apple Macbook" girme kullanıcılar hakkında çok endişeli değilim ve topluma etkisi olmaz.

"MacBook" sahibi olmadığı bir kullanıcı bir arama yaptım ve MacBook sayfada indi Temelde, onlar en popüler etiketleri görmek istiyorsunuz, bazı fotoğraflar (rasgele, ne olursa olsun, bu önemsiz popüler), bu konuda yorum, en popüler URL vs

Ayrıca, teşekkür benim kafa karıştırıcı ve karmaşık bir açıklamasını okumak için zaman ayırdığınız için çok! :)

0 Cevap