Asp.net & SQL databas en person kopplad till flera projekt

Permalänk

Asp.net & SQL databas en person kopplad till flera projekt

Hej!

Jag har ett litet problem, jag behöver egentligen tankar och funderingar på HUR man kan lösa detta på ett simpelt sätt.

Person1 är kopplad till Företag1 via 2 databaser (user_Profile och company_Profile)

Det finns sedan en databas där projekt läggs till (project_DB)

Person1 och Företag1 skall kunna vara kopplad till olika projekt, "oändligt" många.

Vad är enklaste och absolut smidigaste sättet att lösa detta på?

Visa signatur

[ASUS X99-DELUXE] - [i7 5960X] - [48 GB Corsair Dominator Platinum] - [ASUS ROG 780TI] - [ Kingston HyperX Predator 480GB PCI-E ] - [ 12TB 4x3TB WD RED SERIES ] - [Some SSD ~1TB] - [ASUS ROG PG278Q] - [Corsair AX1200i] - [Corsair Hydro Series H115i]

Permalänk
Medlem

Låter som om det är en kopplingstabell du är ute efter?
Det framgår inte i texten hur dina tabeller ser ut så det är svårt att ge något mer detaljerat svar.

Permalänk
Avstängd

Problembeskrivningen är inte så utförlig men du löser enklast det genom en relationsdatabas, som SQL Server, där du sätter upp en tabell eller databas eller databas-server (länkad till den andra då förstås) för projekten. Vilket väl är vad du har typ.

Det här är ju vad relationsdatabaser är till för, relationer, så det är inget konstigt. Rent tekniskt så får du ha ett fält i projekttabellen som är id från user_Profile och/eller company_Profile exempelvis. Man kan förstås göra på en massa sätt, vill du exempelvis kunna koppla många personer eller företag till många projekt, alltså många till många förhållande, så hade du kunnat ha en tabell som innehåller kopplingarna bara. Säg att du har en projekttabell och en företagstabell så skulle du kunna skapa en tabell, säg FöretagsProjekt, där du lägger företags-ID respektive projekt-ID för att på så sätt koppla dem. Kan ett projekt bara vara kopplat till ett företag så behövs inte det förstås utan då är det enklare att bara ha ett fält i projekttabellen som är företagets ID. Personen är ju kopplad till företaget så du behöver inte koppla den separat till projektet, om inte en person kan vara kopplad till flera projekt eller flera företag förstås, då får du göra på liknande sätt för dem.

Permalänk
Medlem

Är du säker att du menar databaser och inte tabeller vad gäller project_DB, user_Profile och company_Profile?

En extra tabell för kopplingarna krävs i vilket fall. En per koppling. Så du kan ha en person_Project och en company_Project. I dessa lagrar du id för person/company och project id.

Företag | Projekt
1 | 1
2 | 1
1 | 2

Person | Projekt
1 | 1
2 | 2
3 | 2

Så 2 företag och 1 person är kopplade till projekt #1 och 1 företag och 2 personer är kopplade till projekt #2.

Permalänk
Medlem

När du säker databas, menar du då egentligen tabell? Det känns märkligt att du ska ha en databas för Person, en för Företag och en för Projekt. Hur som helst så är det som de andra säger, du skapar en korstabell som håller värdet för ProjektID, PersonID och FöretagID så kan samma person och företag finnas så många gånger som det finns lagringsminne

Visa signatur

ASUS ROG Strix X570-F, AMD Ryzen 9 5900X, ASUS GTX 1080 Ti Strix Gaming OC, 32GB G.Skill Trident Z Neo CL16 3600MHz, Arctic Freezer II 240, Seasonic Prime Titanium 850W, Phanteks Enthoo Evolv X, 2x Samsung 970 EVO Plus 1TB, Seagate Firecuda 2TB, Seagate Ironwolf 4TB, ASUS PG278Q

ASUS ROG Crosshair VI Hero, AMD Ryzen 9 3900X, ASUS RTX 2060 Dual OC, 16GB G.Skill Flare X CL14 3200 MHz @3200 MHz, Arctic Freezer 240, Seasonic Prime Titanium 850W, Phanteks Eclipse P400S Glass, Samsung 960 Pro 512GB, Samsung 850 Pro 512GB, Seagate Ironwolf 4TB, ASUS PG278Q

ASUS Maximus V GENE, Intel i7 3770K @ 4,6 GHz (1.190 V), EVGA GTX 670 FTW SLi, 8GB G.Skill TridentX CL10 2400 MHz, Samsung 850 Pro 512GB, Samsung 840 Pro 256GB, Corsair Hydro H100i, Corsair AX860i, Fractal Design Define R4W, ASUS PG278Q