A-AA+then

ช่วยด้วยครับ ไ่ม่รู้จะทำยังไง

1,379
ผมทำโปรเจคจะจบครับ  เป็นเว็บ social network  แต่ติดปัญหาอยู่ที่ สมมตินะครับ  ถ้าเราจะเข้าไปเยี่ยมโปรไฟล์ของเพื่อนสักคน  แล้วมีการคอมเม้นอาจจะเป็นรูป  แล้ว db ที่ออกแบบคือต้องเก็บทั้ง user ของคนที่คอมเม้นและเจ้าของโปรไฟล์   ของคนที่เข้าไปคอมเม้นผมทำเป็น session  แต่ของเจ้าของโปรไฟล์นี่สิครับ  ผมไม่รู้ว่าจะดึงมายังไง เพื่อจะไปเก็บใน db  คิดไม่ออกเลยครับว่าเค้าทำกันยังไง  ที่จะเก็บค่าของผู้เยี่ยมชม  กับเจ้าของโปรไฟล์  หรือจะรู้ว่าใครเป็นคนเยี่ยมชม  หรือใครเป็นเจ้าของโปรไฟล์

ใครมีแนวคิดหรือวิธี  ช่วยแชร์ผมด้วยนะครับ  เป็นพระคุณอย่างสูงเลย  คิดมา สองสามวันแล้ว งานไม่เดินเลย

ขอบคุณครับ

6 ความคิดเห็น

อืม ลองดูนะครับก็เก็บ session ธรรมดาแหล่ะครับ แต่ตอนแรกเราแบ่งประเภทของ user ก่อนแล้วค่อยมาเช็คทีหลังตอนบันทึกข้อมูล
เอาเป็นแนวนะครับ
if ($_SESSION[sess_userid]==session_admin()) {
$sql="INSERT INTO tb_admin VALUES('อะไรก็ว่าไป','555+')";
mysql_db_query("$dbname",$sql);}
else
{
$sql="INSERT INTO tb_friend VALUES('อะไรก็ว่าไป','555+')";
mysql_db_query("$dbname",$sql);}

1

อ่านะ

ผมไม่รู้ว่าจัดทำฐานข้อมูลไว้ยังไง แต่ดูๆแล้วน่าจะคิดมากไปเอง....

จริงๆแล้ว วิธีการมันก็ตรงไปตรงมาอยู่แล้ว เว็บบอร์ดทั่วๆไปก็มีความสามารถนี้ ลองคิดดูให้ดี

ลองทบทวนดังนี้

1.ออกแบบฐานข้อมูล comment หรือยัง ถ้าออกแบบแล้ว ฟิลด์ข้อมูลใดที่บอกว่า กระทู้นี้ จะถูกแสดงที่เว็บของใคร ถ้าสามารถรู้ได้ นั่นแหละข้อมูลของเจ้าของ profile ซึ่งปกติเราต้องเก็บอยู่แล้ว
2. จากข้อ 1 เราก็คงต้องมีฟิลด์ข้อมูลที่ระบุว่า ใครเป็นผู้โพสต์ ความเห็นนี้ และนั่นแหละคือข้อมูลของ ผ้เข้าเยี่ยม

ปกติทั้ง 2 ข้อเราจะมีข้อมูลอยู่แล้ว ดังนั้นปัญหาไม่น่าเกิด ลองปรับแนวคิดใหม่ดูนะครับ
2

 ไม่รู้ว่าผมออกแบบฐานข้อมูลได้ไม่ดีรึเปล่าครับ  อาจารย์ลองดู ๆ ให้หน่อยนะครับ

CREATE TABLE `a9_albumment` (
  `Id` int(11) NOT NULL AUTO_INCREMENT,
  `user_id` varchar(11) NOT NULL DEFAULT '' COMMENT 'เจ้าของอัลบั้ม',  //เป็นของเจ้าของอัลบั้มภาพที่ถูกคอมเม้
  `author_id` varchar(11) NOT NULL DEFAULT '' COMMENT 'หมายเลขของคนคอมเม้น',  //ไอดีของคนที่เข้ามาคอมเม้น
  `album_name` varchar(50) NOT NULL DEFAULT '' COMMENT 'ชื่ออัลบั้ม',
  `comment` text NOT NULL COMMENT 'คอมเม้น',
  `date_album_ment` date NOT NULL DEFAULT '0000-00-00' COMMENT 'วันที่คอมเม้น',
  PRIMARY KEY (`Id`),
  KEY `f2` (`user_id`),
  KEY `author_id` (`author_id`)
) ENGINE=MyISAM AUTO_INCREMENT=8 DEFAULT CHARSET=utf8 COMMENT='คอมเม้นรูปทั้งอัลบั้ม';

ช่วยวิจารณ์หน่อยครับ  ผมอาจจะออกแบบไม่ดี  
ขอบคุณทั้งสองท่าน ด้วยนะครับที่ชี้แนะแนวทางให้  ผมขอศึกษาดูดี ๆ ก่อนนะครับ  เพราะทั้งสองท่านพูดเหมือนว่าง่ายมาก  ผมคิดมากไปเอง  หรือไม่เข้าใจ concept เองรึป่าว  ก็ต้องขอบคุณมาก ๆ ด้วยนะครับ
3

การออกแบบฐานข้อมูลไม่ได้มีกฏตายตัวครับ ปัญหามันอยู่ที่มันมีข้อมูลที่ต้องการหรือเปล่า

จากคำถาม ข้อมูลที่คุณต้องการคือ เจ้าของ และ คน commment ซึ่งคุณเก็บอยู่แล้วคือ user_id และ author_id ซึ่งนั่นก็หมายความว่า

คุณจะหาอะไรอีก ?....

ปัญหาของคุณน่าจะอยู่ที่ ไม่เข้าใจ concept นั่นแหละครับ ค่อยๆคิดครับ แล้วก็รู้จักพิจารณาแนวทางอื่นๆดูบ้าง ถ้าแนวทางที่คิดไว้ ไม่ประสบความสำเร็จ

ส่วนอีกคำถามว่า ออกแบบ  ฐานข้อมูลดีมั้ย อันนี้ตอบยากครับ วิธีคิดง่ายๆ คือ เก็บข้อมูลที่เพียงพอต่อการใช้งาน ครับ ถ้าเมื่อไรที่ข้อมูลที่เก็บไม่เพียงพอค่อยมาเพิ่มทีหลังครับ

วิธีนี้อาจค้านกับตำราเรียนนะครับ แต่มันจะช่วยให้งานง่ายขึ้นได้ ถ้าเราจะไม่ยึดติดกับอะไรมากนัก
4

 ขอบคุณมากครับอาจารย์

ที่ผมทำคือจะดึงค่าออกมาจากฐานข้อมูลโดยอ้างอิงจาก  session  มันก็เลยมีปัญหาที่ว่าใครที่เข้าไปดูมันจะดึง  session ของคนนั้นเลย  ซึ่งมันผิด  

ผมจะมีวิธีอะไรบ้างครับในการอ้างอิง profile แต่ละ profile  เลย  เพื่อดึงค่ารุปภาพออกมาโชว์  เพราะแบบข้างบนมันผิดแน่ ๆ 

ถ้าผมเข้าไปโปรไฟล์เพื่อน  ข้อมูลก้ต้องเป็นของคนนั้นใช่ไหมครับ  แต่แนวคิดมันผมยังไม่รู้เลยครับว่ามันต้องทำไปประมาณไหน 

ยังตันอยู่ครับ  
5

ข้อมูลของผู้เยี่ยมชม อันนี้ไม่น่าจะมีปัญหา เพราะข้อมูลของผู้เยี่ยมชม สามารถเก็บไว้ใน session ได้ และพร้อมนำมาใช้งานตลอด แนวคิดง่ายๆคือ ข้อมูลส่วนนี้ ไม่ว่าจะเข้าไป profile ของใคร ก็จะคงที่เสมอ

ข้อมูลของเจ้าของ profile อันนี้ก็ยิ่งง่ายใหญ่ จริงๆแล้วต้องกลับไปดูโค้ดตัวเองแหละ ข้อมูลตัวนี้จะอยู่ในโค้ดแน่ๆ ส่วนจะเป็นตัวแปรอะไรนั้น ต้องถามคนทำถีงจะรู้ หลักในการพิจารณาก็คือ ข้อมูลที่บอกว่า กำลังเยี่ยมชม profile ใครตอนที่เข้าเว็บมานั่นแหละ อย่างน้อยในตอนแรกเราต้องมีการ query ข้อมูลเจ้าของ profile ออกมาอยู่แล้ว

ส่วน SESSION นั้น อาจไม่เหมาะสมครับ เพราะ 1 user อาจมีการเยี่ยมชม หลาย profile พร้อมกันครับให้เก้บข้อมูลเจ้าของ profile ลงบนตัวแปรเท่านั้น และ ถ้าจำเป็นต้องมีการใช้งาน SESSION อาจต้องมีการตรวจสอบความถุกต้องของข้อมูลก่อนใช้งาน เสมอ ครับ
6
^