2013-03-10 22 views
0

我試圖想出一個模式來存儲來自SMS應用程序的消息。它需要存儲從發件人發送的郵件和發送給該發件人的郵件。如果有人能告訴我這樣做的最佳方式,那麼非常感謝。如果這有什麼不同,我使用Postgresql。用於存儲發送消息和收到同一個人的消息的數據庫模式

+2

'給,來自,消息'和你需要什麼?可能將一個索引添加到'to'&'from'以便能夠快速查找它們。 – Wrikken 2013-03-10 16:49:44

+0

@Wrikken將'to'和'from'的電話號碼規範化爲;無法想象其他任何事情都是必要的。 – 2013-03-11 03:47:23

回答

2

這裏是你可以做什麼brievly:

表聯繫人:

CREATE TABLE contact 
(
    contact_id bigserial NOT NULL, 
    contact_name character varying, 
    contact_phone_number character varying(40), 
    CONSTRAINT contact_pkey PRIMARY KEY (contact_id) 
) 
WITH (
    OIDS=FALSE 
); 

而短信標籤le:

CREATE TABLE sms 
(
    msg_id bigint NOT NULL DEFAULT nextval('message_msg_id_seq'::regclass), 
    sender_id bigint, 
    receiver_id bigint, 
    msg_content text, 
    CONSTRAINT message_pkey PRIMARY KEY (msg_id), 
    CONSTRAINT sms_receiver_id_fkey FOREIGN KEY (receiver_id) 
     REFERENCES contact (contact_id) MATCH SIMPLE 
     ON UPDATE NO ACTION ON DELETE NO ACTION, 
    CONSTRAINT sms_sender_id_fkey FOREIGN KEY (sender_id) 
     REFERENCES contact (contact_id) MATCH SIMPLE 
     ON UPDATE NO ACTION ON DELETE NO ACTION 
    ) 
WITH (
    OIDS=FALSE 
); 
1

您可以用兩個表做到這一點:

用戶表:id, name, {other info about your user}

信息表:id, sender, receiver, message, {other info about message}

相關問題