Jag sitter och skissar på en funktion för privata meddelanden mellan medlemmar. Jag kom en bit på väg men körde fast när varje medlem ska kunna skapa egna mappar att dela upp sina meddelanden i dessa.
Någon som har tips på hur detta kan se ut?
I nuläget har jag följande:
CREATE TABLE `pm` (
`pm_current_id` int(11) NOT NULL default '0',
`pm_date` datetime NOT NULL default '0000-00-00 00:00:00',
`pm_subject` varchar(255) NOT NULL default '',
`pm_from_uid` int(11) NOT NULL default '0',
`pm_from_deleted` tinyint(1) NOT NULL default '0',
`pm_from_status` tinyint(1) NOT NULL default '1',
`pm_to_uid` int(11) NOT NULL default '0',
`pm_to_deleted` tinyint(1) NOT NULL default '0',
`pm_to_status` tinyint(1) NOT NULL default '1',
`pm_from_ip` varchar(18) NOT NULL default '',
PRIMARY KEY (`pm_current_id`),
KEY `pm_id` (`pm_current_id`),
KEY `pm_from_uid` (`pm_from_uid`),
KEY `pm_to_uid` (`pm_to_uid`)
) TYPE=InnoDB;
CREATE TABLE `pm_mess` (
`pm_id` int(11) NOT NULL auto_increment,
`pm_mess` text NOT NULL,
KEY `pm_current_id` (`pm_id`)
) TYPE=InnoDB;
"Varför delar du upp den informationen i två tabeller?"
För man kan skicka ett pm till flera medlemmar, låt oss anta att jag skickar samma meddelande till 10 andra medlemmar, då är det ju onödigt att spara samma text på 10 ställen.
"Varför använder du onödigt många konstruktioner som är mysql-specifika t.ex. KEY och `?"
Jag indexerade fälten genom phpmyadmin, då lade den till de extra key som finns med.
Det med folders-tabellen var ju en smart lösning på problemet, tack! :)
jag köper den anledningen, men då borde väl flera kolumner från pm hamna i pm_mess?
Det där med icke-standard: Bara lite allmän irritation gentemot Mysql som är bra på att hitta på egna konstruktioner fastän det finns helt likvärdiga i SQL-standarden.
jag tänkte på kolumner som pm_from_ip (som kommer att dubbellagras) etc men det blir ju ganska bekvämt att göra som du gjort.
Standard:
T.ex. att mysql tillåter att man blandar uttryck av olika typ hur som helst (i default), `istället för " , att använda key istället för create index (create index ingår i och för sig inte i standarden men det finns i stort sett alla dbms.)
Det jag nu sitter och funderar på är hur jag ger alla en inbox och en skickatbox som default. Jag kan ju iofs hårdkoda dem, men det hade varit betyligt enklare (bättre) att låta dem vara dynamiska om man vill ändra något senare. Det känns onödigt att göra (i nuläget) 700 x 2 poster som är lika. Det enda som skiljer är ju boxowner. I övrigt kommer de ju heta samma sak.
252 ms totalt · 4 externa anrop · v20260731065814-full.e96017d9