23-08-2013, 20:24
Hej, witam wszystkich.
Potrzebuję zaprojektować sobie bazę danych dla słownika (około 200 haseł), każdy wpis posiada opis i dodatkowo należy do jakieś kategorii. Nie mam problemu z podpięciem id kategorii (np. za pomocą klucza obcego). Problem pojawia się z opisem, ponieważ nazwy mogą występować w dwóch językach a opis tylko po polsku, i nie ma sensu dublować opisu chociażby ze względu na późniejszą edycję opisu.
Myślałem nad takim rozwiązaniem, utworzyć trzy tabele: entry, description oraz category. Następnie za pomącą klucza obcego podpiąć pod entry, description_id oraz category_id.
Wtedy np. wpis jabłko i apple posiada ten sam description_id. Tylko, że dodając nowy wpis muszę najpierw dodać description aby uzyskać jego id i dopiero podpiąć pod dany wpis.
Myślałem też nad umieszczeniem wszystkich nazwa w jednej komórce, ale zależy mi na umieszczeniu dodatkowych informacji o wpisie (data, linki, grafika i inne) tak więc wolałbym aby każdy wpis był w osobnym wierszu.
Znacie może jakieś dobre rozwiązanie?
Z góry dzięki.
Potrzebuję zaprojektować sobie bazę danych dla słownika (około 200 haseł), każdy wpis posiada opis i dodatkowo należy do jakieś kategorii. Nie mam problemu z podpięciem id kategorii (np. za pomocą klucza obcego). Problem pojawia się z opisem, ponieważ nazwy mogą występować w dwóch językach a opis tylko po polsku, i nie ma sensu dublować opisu chociażby ze względu na późniejszą edycję opisu.
Myślałem nad takim rozwiązaniem, utworzyć trzy tabele: entry, description oraz category. Następnie za pomącą klucza obcego podpiąć pod entry, description_id oraz category_id.
Wtedy np. wpis jabłko i apple posiada ten sam description_id. Tylko, że dodając nowy wpis muszę najpierw dodać description aby uzyskać jego id i dopiero podpiąć pod dany wpis.
Myślałem też nad umieszczeniem wszystkich nazwa w jednej komórce, ale zależy mi na umieszczeniu dodatkowych informacji o wpisie (data, linki, grafika i inne) tak więc wolałbym aby każdy wpis był w osobnym wierszu.
Znacie może jakieś dobre rozwiązanie?
Z góry dzięki.