Board logo

標題: [技術討論] php mysql 閱讀權限 [打印本頁]

作者: carlkyo    時間: 2018-6-28 21:04     標題: php mysql 閱讀權限

請問CHING
除左用ph in_array($myid,$userlist)呢種方法
可唔可以係mysql已經做到
還有其他比較有效率既方法嗎
many thanks
作者: Ferrari2010    時間: 2018-6-28 22:19

請問CHING
除左用ph in_array($myid,$userlist)呢種方法
可唔可以係mysql已經做到
還有其他比較有效率既方 ...
carlkyo 發表於 2018-6-28 21:04



one to many
起多隻userlist table
作者: carlkyo    時間: 2018-6-28 23:33

本帖最後由 carlkyo 於 2018-6-29 07:41 編輯
one to many
起多隻userlist table
Ferrari2010 發表於 2018-6-28 22:19


myid係user自己個user ID

userlist係user create record時選邊D user可以睇隻record.

many thanks
作者: Ferrari2010    時間: 2018-6-30 14:15

myid係user自己個user ID

userlist係user create record時選邊D user可以睇隻record.

many thanks ...
carlkyo 發表於 2018-6-28 23:33


起個pivot table
即係一個user record table
with user_id, record_id
作者: carlkyo    時間: 2018-6-30 17:02

回覆 4# Ferrari2010
即係如果個record俾id為1 2 3 既人睇,就入3次
Recorded userid
唔知有冇理解錯
Many thanks
作者: Ferrari2010    時間: 2018-7-2 00:58

本帖最後由 Ferrari2010 於 2018-7-2 01:03 編輯
回覆  Ferrari2010
即係如果個record俾id為1 2 3 既人睇,就入3次
Recorded userid
唔知有冇理解錯
Many t ...
carlkyo 發表於 2018-6-30 17:02



yes
record_id         user_id
1                        1
1                        2
1                        3

你可以落個record_id + user_id unique index保障唔會duplicate
而且given record_id and user_id 時search 可以行得好快
作者: faifai773    時間: 2018-7-3 11:00

回覆 6# Ferrari2010
佢個userlist column算吾算violate左db normalization? multi value
作者: carlkyo    時間: 2018-7-4 14:19

本帖最後由 carlkyo 於 2018-7-4 19:28 編輯
yes
record_id         user_id
1                        1
1                        2
1            ...
Ferrari2010 發表於 2018-7-2 00:58
  1. CREATE TABLE `cp_mapping` (
  2.   `note_id` int(11) unsigned NOT NULL,
  3.   `userlist` int(11) unsigned  DEFAULT '0'
  4. ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
複製代碼
不過唔知table structure有冇錯
係database層面已經做到我要既野
冇選人就唔入
有選人就會逐次入record_id & userid
many thanks
作者: Ferrari2010    時間: 2018-7-7 15:30

回覆  Ferrari2010
佢個userlist column算吾算violate左db normalization? multi value
faifai773 發表於 2018-7-3 11:00



其實最重要係performance.
normalize後如果令到data structure複雜得濟又唔化算.
如果唔洗search, 就算放json我覺得都可以.
作者: Ferrari2010    時間: 2018-7-7 15:33

不過唔知table structure有冇錯
係database層面已經做到我要既野
冇選人就唔入
有選人就會逐次入record_id  ...
carlkyo 發表於 2018-7-4 14:19



如果係咁你可以在records table加個field,
tinyint 1/0
用來決定搵唔搵cp_mapping 呢個table.
作者: carlkyo    時間: 2018-7-8 12:02

  1. DROP TABLE IF EXISTS `cp_mapping`;
  2. CREATE TABLE `cp_mapping` (
  3.   `record_id` int(11) unsigned NOT NULL,
  4.   `userlist` int(11) unsigned NOT NULL DEFAULT '0',
  5.   KEY `record_id` (`record_id`),
  6.   KEY `userlist` (`userlist`),
  7.   CONSTRAINT `cp_mapping_ibfk_2` FOREIGN KEY (`userlist`) REFERENCES `cp_user` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
  8.   CONSTRAINT `cp_mapping_ibfk_1` FOREIGN KEY (`record_id`) REFERENCES `cp_record` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
  9. ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
複製代碼
我用左left join
where userlist is null or userlist = $_session['myuid']





歡迎光臨 電腦領域 HKEPC Hardware (https://h2.hkepc.com/forum/) Powered by Discuz! 7.2