Jag har under en längre tid försökt att integrera det php-baserade forumet phpBB med en portal jag håller på att utveckla i php. Nu har jag upptäckt en del svårigheter i detta arbete.
I min portal har jag ett användar- och valideringssystem. I forumet finns följdaktligen ett annat likartat användarsystem. Jag har brottats med tanken på hur jag skall kunna integrera dessa två på ett smidigt sätt. Min portals valideringssystem skall vara det huvudsakliga systemet för användaridentifiering i både portalen och forumet. Nu känner jag dock att jag stött på patrull. (För mer bakgrundsinformation om integrationsproblematiken kan följande tråd läsas).
Nu har jag beslutat mig för att utveckla ett eget forum som helt och hållet passar min portals behov. Det må hända inte ha fullt så många funktioner som phpBB men det är å andra sidan inte nödvändigt eftersom phpBB i sig är en sorts community-program. Den delen utvecklar jag helst själv.
I den bifogade bildfilen har jag gjort ett litet utkast med hjälp av en ER-modell hur ett forum skulle kunna se ut. Nu skulle jag gärna vilja ha lite kommentarer och synpunkter på strukturen. Är det något som är felaktigt? Något som bör läggas till eller tas bort för funktionalitetens skull så att jag inte "målar in mig i ett hörn" vid eventuell framtida utveckling? :)
Men jag tycker du borde vara mer konsekvent med singular/plural i namnen.
Lämpligast är väl singular på allt. t.ex. thread och guideline.
Sen så lyckas jag inte lista ut hur du gör kopplingarna. Har du skippat de kolumnerna?
Lite intressant också vad det är för fälttyp.
Sen så känns det lite dumt att köra en kolumn som PK i referenstabeller. I t.ex. CONTENT_FORUM_MODERATOR så bör ju ForumId+ModeratorId utgöra PK. I ditt fall så skulle databasen tillåta att samma moderator är kopplad till ett forum flera gånger.
Eftersom att du har så många datetime så tycker jag det känns dumt att döpa dem olika. Kör istället med ett standardnamn och lägg in det i precis alla kolumner. Aldrig dumt att ha ett datum för när någonting är skapat.
Jag har gjort det i programmet Rational Rose och detta är standardstorleken.
Men jag tycker du borde vara mer konsekvent med singular/plural i namnen.
Lämpligast är väl singular på allt. t.ex. thread och guideline.
Jag vet att jag är en riktig slarver när det kommer till detta och jag borde ha bättrat mig för länge sedan :)
Sen så lyckas jag inte lista ut hur du gör kopplingarna. Har du skippat de kolumnerna?
Lite intressant också vad det är för fälttyp.
Anledningen till att det inte verkar vara några kolumner mellan en del entiter beror på att jag har valt att sätta ut dessa kolumner som skapas vid många-till-många samband när jag översätter modellen till relationell form.
Fälttyperna brukar jag också ange när jag översätter modellen till relationell form.
Sen så känns det lite dumt att köra en kolumn som PK i referenstabeller. I t.ex. CONTENT_FORUM_MODERATOR så bör ju ForumId+ModeratorId utgöra PK. I ditt fall så skulle databasen tillåta att samma moderator är kopplad till ett forum flera gånger.
Återigen så kommer jag skapa denna nyckel när tabellen vilka som modererar vilka forum skapas. Men jag förstår helt och hållet att detta kan förefalla otydligt för den som inte är insatt i hur just jag tänker, och det kan ju inte alla vara ;)
Eftersom att du har så många datetime så tycker jag det känns dumt att döpa dem olika. Kör istället med ett standardnamn och lägg in det i precis alla kolumner. Aldrig dumt att ha ett datum för när någonting är skapat.
Det är en bra idé. Anledningen att en fick heta RegDateTime var enbart för att det skulle anknyta till när ett forum skapades men det är smart som du säger att ha ett och samma namn för alla typer av datumregistreringar.
Det är för litet för att jag ska kunna läsa det, du kan inte posta en större version.
Postar en större variant när jag kommer hem från jobbet!
OT:
Det är ingen ER-modell (Entity Relation), utan ett UML-diagram du gjort
Så fick vi iallafall lära oss att det kallades i den databaskurs jag läste på Mitthögskolan i Östersund. Jag har stött på begreppet UML men det är ett uttryck som vi aldrig har använt i dessa sammanhang!
Perfekt om du postar en större version. I ett ER eller EER-diagram ritas entitetstyper som rektangulära lådor, attribut ritas inte inne i dessa lådor utan i ovala figurer med streck ihopkopplade till entitetstypen. Sambandstyper i ett ER eller EER diagram ritas med diamanter ihopkopplade med streck till entiteter, i dessa diamanter står en beskrivning av sambandet. :)