เช็กสิทธิใน MySQL


ใกล้เลือกตั้งแล้ว เลยจะเขียนอะไรเกี่ยวกับสิทธิดูซักหน่อย สมมุติว่าทำอัลบั้มรูปงานรับปริญญาออนไลน์แต่อยากจะให้สมาชิกดูได้ไม่กี่คน ตามปกติจะมี 3 ตารางคือ ตารางเก็บรูป ตารางสมาชิก และตารางเก็บว่าใครดูได้บ้างอีกตาราง แต่มีเทคนิคที่ทำให้ใช้ 2 ตารางโดยรวมสิทธิไปไว้กับตารางเก็บรูปเลย ก่อนอื่นสร้างตารางก่อน

--
-- Table structure for table `images`
--

CREATE TABLE IF NOT EXISTS `images` (
  `imageId` int(11) NOT NULL AUTO_INCREMENT,
  `src` varchar(20) NOT NULL,
  `assign` varchar(100) NOT NULL,
  PRIMARY KEY (`imageId`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;

--
-- Dumping data for table `images`
--

INSERT INTO `images` (`imageId`, `src`, `assign`) VALUES
(1, 'Graduate.jpg', '2,3,15,19');

สร้างตารางสมาชิกเองนะครับ ^_^ ค่าใน assign คือ id ของ user แต่ละคนคั่นด้วย , เวลาแสดงก็หาได้โดยใช้ไอดีของ user มาใส่ใน function FIND_IN_SET ช่วยเลือกข้อมูลตามตัวอย่าง

SELECT  `imageId` ,  `src` 
FROM  `images` 
WHERE FIND_IN_SET(  '3',  `assign` ) > 0;

ถ้า id 3 มีอยู่ใน assign ก็จะเห็นข้อมูลครับ

About plusmagic

PHP lover in thailand

Posted on 2013/03/15, in database, MySql, programming and tagged , , , , , . Bookmark the permalink. ใส่ความเห็น.

ใส่ความเห็น

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / เปลี่ยนแปลง )

Twitter picture

You are commenting using your Twitter account. Log Out / เปลี่ยนแปลง )

Facebook photo

You are commenting using your Facebook account. Log Out / เปลี่ยนแปลง )

Google+ photo

You are commenting using your Google+ account. Log Out / เปลี่ยนแปลง )

Connecting to %s

%d bloggers like this: