🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.bazy-danych.msaccess
6 messages
6 total messages Started by kozator2 Thu, 18 Jun 2015 08:27
zapytania SQL, a pola wielowartościowe
#136910
Author: kozator2
Date: Thu, 18 Jun 2015 08:27
12 lines
1592 bytes
Witam,
mam dwie tabele
Identyfikator | uprawnienie
oraz
Użytkownik | uprawnienia

gdzie uprawnienia to pole wielowartościowe. Próbuję stworzyć zapytanie pokazujące dla konkretnego użytkownika tabelę:
Identyfikator | uprawnienie

gdzie uprawnienie połączone jest oczywiście z polem uprawniania dla konkretnego użytkownika. Pierwsza tabela oczywiście zasila danymi pole uprawnienia w drugiej. 

Jakieś pomysły?
Re: zapytania SQL, a pola wielowartościowe
#136911
Author: MaciejF
Date: Thu, 18 Jun 2015 10:14
19 lines
1890 bytes
... 
> Jakieś pomysły?

Proszę doprecyzuj:
Przy czym pole "uprawnienia" to pole wielowarościowe.

Obawiam się, że tabele są źle zaprojektowane.
Ale najpierw odpowiedz.

Pole identyfikator powinno być wpisywane dla każdego Użytkownika.
(Moim zdaniem powinno być tyle rekordów ile użytkownik ma uprawnień.)

A więc
Użytkownik1 identyfikator1
użytkownik1 identyfikator2

itd.

MF
Re: zapytania SQL, a pola wielowartościowe
#136914
Author: Maciej Tokarz
Date: Thu, 18 Jun 2015 10:23
36 lines
1701 bytes

Użytkownik  napisał w wiadomości grup 
dyskusyjnych:619f0d2a-447b-4e4a-9b0d-c2e9418070f4@googlegroups.com...

> gdzie uprawnienie połączone jest oczywiście z polem uprawniania dla 
> konkretnego użytkownika. Pierwsza tabela oczywiście zasila danymi pole 
> uprawnienia w drugiej.

Cześć!

Mniej więcej mógłbyś zrobić taki schemat:

Users
    Id
    Name
    PasswordHash
    LastLoginDate
    itp.

Roles
    Id
    Name
    FriendlyName

UsersInRoles
    UserId
    RoleId

Relacje jakie zachodzą:
Users.Id => UsersInRoles.UserId
Roles.Id => UsersInRoles.RoleId

Przy takim układzie jeden użytkownik może mieć kilka roli aplikacyjnych.

M. 
Re: zapytania SQL, a pola wielowartościowe
#136912
Author: kozator2
Date: Thu, 18 Jun 2015 11:43
27 lines
2171 bytes
W dniu czwartek, 18 czerwca 2015 12:14:06 UTC+2 użytkownik MaciejF napisał:
> ... 
> > Jakieś pomysły?
> 
> Proszę doprecyzuj:
> Przy czym pole "uprawnienia" to pole wielowarościowe.
> 
> Obawiam się, że tabele są źle zaprojektowane.
> Ale najpierw odpowiedz.
> 
> Pole identyfikator powinno być wpisywane dla każdego Użytkownika.
> (Moim zdaniem powinno być tyle rekordów ile użytkownik ma uprawnień.)
> 
> A więc
> Użytkownik1 identyfikator1
> użytkownik1 identyfikator2
> 
> itd.
> 
> MF


W polu uprawnienia są np. odczyt, zapis itp. Każde uprawnienie ma swój ID, chodzi o to, by utworzyć tabelę:

ID_uprawnienia | uprawnienie

ale wypisać tylko te które ma dany użytkownik wpisane w polu wielowartościowym uprawnienia.
Re: zapytania SQL, a pola wielowartościowe
#136915
Author: kozator2
Date: Thu, 18 Jun 2015 11:46
37 lines
2386 bytes
W dniu czwartek, 18 czerwca 2015 12:23:37 UTC+2 użytkownik Maciej Tokarz napisał:
> Użytkownik  napisał w wiadomości grup 
> dyskusyjnych:619f0d2a-447b-4e4a-9b0d-c2e9418070f4@googlegroups.com...
> 
> > gdzie uprawnienie połączone jest oczywiście z polem uprawniania dla 
> > konkretnego użytkownika. Pierwsza tabela oczywiście zasila danymi pole 
> > uprawnienia w drugiej.
> 
> Cześć!
> 
> Mniej więcej mógłbyś zrobić taki schemat:
> 
> Users
>     Id
>     Name
>     PasswordHash
>     LastLoginDate
>     itp.
> 
> Roles
>     Id
>     Name
>     FriendlyName
> 
> UsersInRoles
>     UserId
>     RoleId
> 
> Relacje jakie zachodzą:
> Users.Id => UsersInRoles.UserId
> Roles.Id => UsersInRoles.RoleId
> 
> Przy takim układzie jeden użytkownik może mieć kilka roli aplikacyjnych.
> 
> M.

Jest to jakaś opcja, ale nie wykorzystuje już użytych pól wielowartościowych.
Re: zapytania SQL, a pola wielowartościowe
#136913
Author: Krzysztof Zatorski
Date: Thu, 18 Jun 2015 13:41
20 lines
2304 bytes
W dniu czwartek, 18 czerwca 2015 10:27:06 UTC+2 użytkownik Krzysztof Zatorski napisał:
> Witam,
> mam dwie tabele
> Identyfikator | uprawnienie
> oraz
> Użytkownik | uprawnienia
> 
> gdzie uprawnienia to pole wielowartościowe. Próbuję stworzyć zapytanie pokazujące dla konkretnego użytkownika tabelę:
> Identyfikator | uprawnienie
> 
> gdzie uprawnienie połączone jest oczywiście z polem uprawniania dla konkretnego użytkownika. Pierwsza tabela oczywiście zasila danymi pole uprawnienia w drugiej. 
> 
> Jakieś pomysły?

Problem chyba rozwiązany, przykład:

SELECT Uprawnienia.Identyfikator, Uprawnienia.Uprawnienie
FROM Uprawnienia INNER JOIN Uzytkownicy ON Uprawnienia.Identyfikator = Uzytkownicy.Uprawnienia.Value WHERE Uzytkownicy.Uzytkownik like "Osoba" ;

Access nie zapizuje nazwy uprawnienia, a jego ID, mimo, że w tabeli wyświetla nazwę, stąd zamieszanie.
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads