🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.bazy-danych
Article #195669

Podwójna relacja - jak?

#195669
From: Roman Tyczka
Date: Wed, 08 May 2019 10:41
25 lines
1761 bytes
Wyobraźmy sobie, że mam zaprojektować strukturę bazy w której będzie tabela
przyborów biurowych (PRZYBORY), tabela pracowników (PRACOWNICY) oraz
działów, w których pracują pracownicy (DZIALY).
Przybory mogą należeć do pracownika konkretnego lub do całego działu.
Jak to najzgrabniej zaprojektować? Mam dwa pomysły:

1. tabela wiążąca PRZYBORY_OWNER, która ma klucz obcy OWNERID (będący
kluczem do tabeli PRACOWNICY lub DZIALY) oraz kolumnę dodatkową OWNERKIND,
wskazującą której tabeli dotyczy konkretna wartość w OWNERID. Stąd powstają
wiązania po kluczach:
OWNERID -> PRACOWNIKID
lub
OWNERID -> DZIALID

2. tworzę dwie tabele wiążące, osobno dla pracowników i działów,
odpowiednio: PRACOWNICY_PRZYBORY i DZIALY_PRZYBORY, obie z kluczami do
odpowiadających im kolumn w tabelach powiązanych.

Czy można to zrobić jeszcze inaczej? I które rozwiązanie jest
powszechniejsze?

-- 
pozdrawiam
Roman Tyczka
Technical Details
Message-ID: <uyjp7tf73q3d.dlg@tyczka.com>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!goblin1!goblin.stu.neva.ru!newsfeed.neostrada.pl!unt-exc-01.news.neostrada.pl!unt-spo-a-01.news.neostrada.pl!news.neostrada.pl.POSTED!not-for-mail

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!goblin1!goblin.stu.neva.ru!newsfeed.neostrada.pl!unt-exc-01.news.neostrada.pl!unt-spo-a-01.news.neostrada.pl!news.neostrada.pl.POSTED!not-for-mail
From: Roman Tyczka <noemail@because.no>
Subject: Podwójna relacja - jak?
Newsgroups: pl.comp.bazy-danych
User-Agent: 40tude_Dialog/2.0.15.84
MIME-Version: 1.0
Sender: romek@tyczka.no.found
Date: Wed, 8 May 2019 12:41:12 +0200
Message-ID: <uyjp7tf73q3d.dlg@tyczka.com>
Lines: 25
Organization: Telekomunikacja Polska
NNTP-Posting-Host: 94.75.90.137
X-Trace: 1557312072 unt-rea-a-02.news.neostrada.pl 526 94.75.90.137:10387
X-Complaints-To: abuse@news.neostrada.pl
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit