2016-04-12 57 views
0

MySQL kullanıyorum ve farklı kullanıcı kombinasyonları için benzersiz bir grup etiketi oluşturmanız gerekiyor. Bir grubun en az bir kullanıcıya ihtiyacı vardır, ancak kullanıcı kombinasyonları ve grup etiketleri benzersiz olmalıdır.MySQL Yapısı - Benzersiz Kullanıcı Grupları

  • Larry (1)
  • Kıvırcık (2)
  • Moe (3)

Biz başlayabilirsiniz:

Yani, örneğin, üç kullanıcıları ve kimliklerine sahip Her biri tek bir kullanıcı içeren üç grupla. İsimler bir sistem kullanıcısı ne olursa olsun olabilir, bu yüzden sadece ilk başlangıçlarını kullanalım. L, C ve M gruplarına sahip olacağız. Ama şimdi Larry ve Curly ile bir grubum var, bu yüzden LC adında başka bir grup istiyorum. Larry ve Curly farklı bir isimle başka bir grup oluşturamazlar, ancak Moe'yı LCM başka bir grup haline getirebilirler.

Şimdi 1 ve 2 kimliklerim varsa, LC grubunu çekecek bir sorgu oluşturabilmek istiyorum.

Şu anda bunu nasıl yapacağım konusunda bir kayıp yaşıyorum. Herhangi bir öneri harika olurdu.

Şimdiden teşekkürler!

cevap

0

LM, LC ile birlikte bulunabilir mi?

En fazla 64 "kullanıcınız yok mu? Öyleyse, "grupları" SET veri türü veya BIGINT UNSIGNED olarak uygulayabilirsiniz. Altında kapsayan

the_group SET ('Larry', 'Curly', 'Moe') 

, o

UNIQUE(the_group) 

sadece diyecekler vs. Larry atıfta alt bit, bir sonraki bit Curly olmak

the_group TINYINT UNSIGNED 

aynıdır Mevcut tablodaki bir satır belirli bir gruba başvurabilir.

Gruplarda ne tür işlemler yapmak istediğinizi söylemediniz, bu yüzden SETs ya da ints işlemlerini gerçekleştirebileceğiniz çeşitli yolları açıklamam. bu semantiklerle.

  • Gruplar: group_id, user_id (birçok çoğa eşleme tablosu)
  • Siparişler:

    Daha

    Ya da belki bu tablolar gerek sipariş bilgisi ..., group_id

  • kullanıcılar: user_id, kullanıcı adı ... bir suitab ile

le 3-tablo JOIN, bir 'sipariş' için sorumlu tüm 'kullanıcıları' listeleyebilirsiniz.Recommendation on many-to-many

+0

Oldukça ilginç. Temel olarak, siparişler sistemimize girer. Siparişten hangi grubun sorumlu olduğuna bağlı olarak, grup adı için sorgulama yapmak isterdim. LC grubu ile birlikte bir LM grubu olabilir. Ama sadece sipariş başına bir grup olacak. Eğer Larry ve Moe'nun sorumlu olduğu bir emir konulursa, bunların hep birlikte LM oluşturduğunu bilmek isterdim. – kenshin9