Bir-çok ilişkisi korumak için uygun veri yapısı

0 Cevap php

Ben bir veritabanında belgeleri temsil etmek istiyorum. Belgelerin birkaç farklı türleri vardır. Tüm belgeler ortak bazı şeyler var, ama tüm belgeler aynıdır.

Örneğin, ben belgeleri için temel bir tablo var diyelim ...

TABLE docs (
    ID
    title
    content
)

Şimdi ben bir kullanıcıya ait belgelerin bir alt kümesi var ve onlarla ilişkili ek bilgi olabilir diyelim. Ben aşağıdaki yapabileceğini ...

TABLE docs (
    ID
    userID -> users(ID)
    title
    content
    additionalInfo
)

... Ancak bu yalnızca some belgeler her bir kullanıcı için değil ait olabilir, tablodaki değerler boş bir çok neden olur. Peki yerine ben "docs" genişletmek için ikinci bir tablo "ownedDocs" oluşturduk:

TABLE ownedDocs (
    docID -> docs(ID)
    userID -> users(ID)
    additionalInfo
)

Ben merak ediyorum: bu bunu yapmak için doğru yolu var mı? Her şey tek bir tabloda ise, ben dokümanlar ve kullanıcılar arasında bir-çok ilişkisi var çünkü (ben endişe duyuyorum. Ben dokümanlar arasında çok-çok ilişkisi var gibi Ancak, yeni bir tablo ownedDocs oluşturarak, datastructure görünüyor ve kullanıcıları -. ortaya asla)

Yardımlarınız için şimdiden teşekkürler

0 Cevap