群发“站内信”根据不同用户量,不同的数据库设计原理

2014-4-11 liyangweb.com 李杨 MySQL

  在很多网站系统(如CMS系统,SNS系统等),都有“站内信”的功能。
  “站内信”不同于电子邮件,电子邮件通过专门的邮件服务器发送、保存。而“站内信”是系统内的消息,说白了,“站内信”的实现,就是通过数据库插入记录来实现的。
  “站内信”有两个基本功能。一:点到点的消息传送。用户给用户发送站内信;管理员给用户发送站内信。二:点到面的消息传送。管理员给用户(指定满足某一条件的用户群)群发消息。点到点的消息传送很容易实现,本文不再详述。下面将根据不同的情况,来说说“站内信”的群发是如何实现的。
  第一种情况,站内的用户是少量级别的。(几十到上百)
  这种情况,由于用户的数量非常少,因此,没有必要过多的考虑数据库的优化,采用简单的表格,对系统的设计也来的简单,后期也比较容易维护,是典型的用空间换时间的做法。
  数据库的设计如下:表名:Message
  ID:编号;SendID:发送者编号;RecID:接受者编号(如为0,则接受者为所有人);Message:站内信内容;Statue:站内信的查看状态;PDate:站内信发送时间;
  如果,某一个管理员要给所有人发站内信,则先遍历用户表,再按照用户表中的所有用户依次将站内信插入到Message表中。这样,如果有56个用户,则群发一条站内信要执行56个插入操作。这个理解上比较简单,比较耗损空间。
  某一个用户登陆后,查看站内信的语句则为:
  Select * FROM Message Where RecID=‘ID’ OR RecID=0
  第二种情况,站内的用户中量级别的(上千到上万)。
  如果还是按照第一种情况的思路。那发一条站内信的后果基本上就是后台崩溃了。因为,发一条站内信,得重复上千个插入记录,这还不是最主要的,关键是上千乃至上万条记录,Message字段的内容是一样的,而Message有大量的占用存储空间。比方说,Message字段有100个汉字,占用200个字节,那么5万条,就占用200×50000=10000000个字节=10M。简单的一份站内信,就占用10M,这还让不让人活了。
  因此,将原先的表格拆分为两个表,将Message的主体放在一个表内,节省空间的占用
  数据库的设计如下:
  表名:Message
  ID:编号;SendID:发送者编号;RecID:接受者编号(如为0,则接受者为所有人);MessageID:站内信编号;Statue:站内信的查看状态;
  表名:MessageText 
  ID:编号;Message:站内信的内容;PDate:站内信发送时间;
  在管理员发一封站内信的时候,执行两步操作。先在MessageText表中,插入站内信的内容。然后在Message表中给所有的用户插入一条记录,标识有一封站内信。
  这样的设计,将重复的站内信的主体信息(站内信的内容,发送时间)放在一个表内,大量的节省存储空间。不过,在查询的时候,要比第一种情况来的复杂。
  第三种情况,站内的用户是大量级的(上百万),并且活跃的用户只占其中的一部分。
  大家都有这样的经历,某日看一个网站比较好,一时心情澎湃,就注册了一个用户。过了一段时间,由于种种原因,就忘记了注册时的用户名和密码,也就不再登陆了。那么这个用户就称为不活跃的。从实际来看,不活跃的用户占着不小的比例。
  我们以注册用户2百万,其中活跃用户只占其中的10%。
  就算是按照第二种的情况,发一封“站内信”,那得执行2百万个插入操作。但是其中的有效操作只有10%,因为另外的90%的用户可能永远都不会再登陆了。
  在这种情况下,我们还得把思路换换。
  数据库的设计和第二种情况一样:
  表名:Message
  ID:编号;SendID:发送者编号;RecID:接受者编号(如为0,则接受者为所有人);MessageID:站内信编号;Statue:站内信的查看状态;
  表名:MessageText 
  ID:编号;Message:站内信的内容;PDate:站内信发送时间;
  管理员发站内信的时候,只在MessageText插入站内信的主体内容。Message里不插入记录。
  那么,用户在登录以后,首先查询MessageText中的那些没有在Message中有记录的记录,表示是未读的站内信。在查阅站内信的内容时,再将相关的记录插入到Message中。
  这个方法和第二种的比较起来。如果,活跃用户是100%。两者效率是一样的。而活跃用户的比例越低,越能体现第三种的优越来。只插入有效的记录,那些不活跃的,就不再占用空间了。

转自 php100中文网

标签: 数据库设计

评论:

kalimias
2019-01-19 08:08
<a href="http://www.supermarketes.com/nike-zoom-ascention-rouge-blanc-butya">nike zoom ascention rouge blanc</a> <a href="http://www.texastribal.com/nike-kobe-9-bianca-and-oro-obuvc">nike kobe 9 bianca and oro</a> <a href="http://www.donareseguros.com/nike-huarache-utility-lilla-gul-scarpea">nike huarache utility lilla gul</a> <a href="http://www.frozentissue.com/nike-air-max-1-royal-nero-knights-scarpee">nike air max 1 royal nero knights</a> <a href="http://www.lampenloft.com/nike-air-force-1-zwart-vendita-obuvc">nike air force 1 zwart vendita</a> <a href="http://www.notasoficina.com/nike-cortez-b%C3%B8rn-gr%C3%B8n-lilla-scarpea">nike cortez b酶rn gr酶n lilla</a>
kalimias http://www.kalimias.com/
ghyez348
2019-01-13 03:13
<a href="http://www.72y9pzek.com/dam%C3%A4nner-asics-gel-kinsei-4-rot-rosa-chaussuresa">dam盲nner asics gel kinsei 4 rot rosa</a> <a href="http://www.ata4l20x.com/adidas-neo-lazy-hvid-himmelbl%C3%A5-obuva">adidas neo lazy hvid himmelbl氓</a> <a href="http://www.avoqyd09.com/jordan-11-low-bl%C3%A5-snakeskin-butyc">jordan 11 low bl氓 snakeskin</a> <a href="http://www.ds432gxe.com/adidas-damian-lillard-rojo-scarpeb">adidas damian lillard rojo</a> <a href="http://www.6mohycx0.com/nike-air-jordan-son-of-mars-true-bleu-zones-kurpesf">nike air jordan son of mars true bleu zones</a> <a href="http://www.rnokcrc1.com/nike-sb-dunk-high-summit-blanc-scarpea">nike sb dunk high summit blanc</a>
ghyez348 http://www.ghyez348.com/
intoloo
2019-01-09 03:50
<a href="http://www.divyangmart.com/flyknit-air-max-modern-time-sneakere">flyknit air max modern time</a> <a href="http://www.ezellhvac.com/nike-air-max-zero-l%C3%B8b-sko-kvinders-obuvc">nike air max zero l酶b sko kvinders</a> <a href="http://www.oldoyopark.com/nfl-womens-nike-pittsburgh-steelers-93-dan-mccullers-ash-one-color-pullover-hoodie-nflw">nfl womens nike pittsburgh steelers 93 dan mccullers ash one color pullover hoodie</a> <a href="http://www.racquetlady.com/chicago-bulls-michael-jordan-hoodie-new-adult-size-medium-other-nflv">chicago bulls michael jordan hoodie new adult size medium other</a> <a href="http://www.ankaralokanta.com/nike-air-max-90-flyknit-mens-oil-skog">nike air max 90 flyknit mens oil</a> <a href="http://www.mengenmetal.com/nike-air-max-thea-price-malaysia-skob">nike air max thea price malaysia</a>
intoloo http://www.intoloo.com/
6o56ja90
2019-01-02 19:52
<a href="http://www.5tqkyfya.com/air-jordan-son-of-mars-schwarz-cem%C3%A4nnert-kits-butye">air jordan son of mars schwarz cem盲nnert kits</a> <a href="http://www.1v9ssaoa.com/air-jordan-9-metalleic-gold-yarn-scarped">air jordan 9 metalleic gold yarn</a>
6o56ja90 http://www.6o56ja90.com/
candaceart
2019-01-02 13:06
<a href="http://www.nedshare.com/nike-air-yeezy-2-blanco-gris-naranja-chaussuresa">nike air yeezy 2 blanco gris naranja</a> <a href="http://www.njbabyboomer.com/adidas-ultra-boost-r%C3%B8d-lilla-butya">adidas ultra boost r酶d lilla</a> <a href="http://www.chipperradio.com/jordan-9-rosso-gituttio-butyd">jordan 9 rosso gituttio</a> <a href="http://www.danaperth.com/adidas-crazy-light-boost-vert-and-or-games-obuvg">adidas crazy light boost vert and or games</a> <a href="http://www.detabouw.com/salomon-speedcross-3-oransje-svart-key-kurpesa">salomon speedcross 3 oransje svart key</a> <a href="http://www.elyseprather.com/nike-kd-lifestyle-rosso-line-kurpesf">nike kd lifestyle rosso line</a>
candaceart http://www.candaceart.com/
artlaurey
2018-12-29 22:43
<a href="http://www.mahalodoc.com/nike-hypershift-blanco-and-verde-kurpesf">nike hypershift blanco and verde</a> <a href="http://www.truenthusiast.com/kobe-10-schwarz-and-rot-eye-schuhef">kobe 10 schwarz and rot eye</a> <a href="http://www.wikigow.com/nike-air-max-90-ni%C3%B1os-amarillo-marr%C3%B3n-obuvg">nike air max 90 ni帽os amarillo marr贸n</a> <a href="http://www.yogabexhill.com/nike-air-max-tn-gr%C3%A5-lyser%C3%B8d-chaussuresa">nike air max tn gr氓 lyser酶d</a> <a href="http://www.agedleadz.com/maschio-nike-flynit-air-max-verde-oro-butya">maschio nike flynit air max verde oro</a> <a href="http://www.bordybarn.com/air-jordan-11-gull-for-salg-obuvc">air jordan 11 gull for salg</a>
artlaurey http://www.artlaurey.com/
hepalmak
2018-12-29 09:08
<a href="http://www.daunchbeauty.com/nike-roshe-run-gelb-blau-scarpea">nike roshe run gelb blau</a> <a href="http://www.farenyuk.com/nike-foamposite-one-tutti-bianca-kurpese">nike foamposite one tutti bianca</a> <a href="http://www.howellsolar.com/mens-nike-pittsburgh-steelers-11-justin-hunter-limited-olive-2017-salute-to-service-nfl-jersey-nflr">mens nike pittsburgh steelers 11 justin hunter limited olive 2017 salute to service nfl jersey</a> <a href="http://www.immoetvous.com/nike-lebron-soldier-10-r%C3%B8d-hvid-kurpese">nike lebron soldier 10 r酶d hvid</a> <a href="http://www.janetsher.com/air-jordan-9-low-brosso-upgrades-schuhee">air jordan 9 low brosso upgrades</a> <a href="http://www.johngerretsen.com/salomon-gcs-athletic-trail-guld-gul-obuvf">salomon gcs athletic trail guld gul</a>
[url=http://www.hepalmak.com/]hepalmak[/url]
talkofig
2018-12-29 06:51
<a href="http://www.nomorbogor.com/asics-gel-noosa-tri-10-menns-s%C3%B8lv-sneakerb">asics gel noosa tri 10 menns s酶lv</a> <a href="http://www.sozihoster.com/nike-flyknit-lunar-1-atomic-pink-kaufen-skod">nike flyknit lunar 1 atomic pink kaufen</a> <a href="http://www.allbidder.com/christian-louboutin-outlet-houston-texas-louboutine">christian louboutin outlet houston texas</a> <a href="http://www.yrlogoworks.com/pandora-princess-ring-stack-pandorar">pandora princess ring stack</a> <a href="http://www.sateambeast.com/ray-ban-rb4057-sunglasses-womens-sunglassesf">ray ban rb4057 sunglasses womens</a> <a href="http://www.druckberg.com/prada-pink-sunglasses-pradar">prada pink sunglasses</a>
talkofig http://www.talkofig.com/

发表评论:

Powered by emlog 冀ICP备13011830号-1