PHP 板


LINE

看板 PHP  RSS
很抱歉,用了一个很不知所云的标题, 因为我实在不知道该怎麽简单描述我现在遇到的问题。 如果有人能给我一个适当的标题,在下必定尽速修正。 问题有点长,请容我描述一下: 假设我有一个纪录人际关系的资料库, 纪录人名与各种不同的关系,比如这样: 王小明 同学 仇人 朋友 家人 李小英 同学 仇人 朋友 家人 陈小华 同学 仇人 朋友 家人 (亮白字表示对方与我的关系;暗白色表示不存在的关系) 我想在资料库内储存这样的资料,很直觉地可以这麽做: Name relation1 relation2 relation3 relation4 王小明 1 0 1 0 李小英 0 0 0 1 陈小华 1 1 0 0 但是,如果我想要随时增加这些关系属性(比如同事、上司等等), 除了无止尽的增加资料表,并且不断地修改相关的 SQL 语法以利管理这些资料外, 有没有比较简单的方法处理这类问题呢? 我之前想了一个方法,只要一个栏位,就可以纪录所有的关系。 以王小明为例子,我把原本资料表内的资料集合起来,变成 1010 一个数值, 将这个数字倒转过来,成为 0101,然後用 bindec 函数转为十进位,并储存起来。 要调用这笔资料的时候,只要将这个十进位数字用 decbin 函数解出来, 反转之後再分割一个个单独的字元,就可以得到当初储存的关系了。 这麽处理过後,资料库可以简化成这样: Name relation 王小明 5 (1010 -> 0101 -> 5) 李小英 8 (0001 -> 1000 -> 8) 陈小华 3 (1100 -> 0011 -> 3) 要反转一次的理由,是方便以後增加新的关系属性时,不致导致之前的资料混乱掉。 这部份不是本次问题的重点,暂时就不多做解释。 这麽做之後,要列举出所有资料当然是没有问题的, 只要将关系系数解码之後倾印出来就可以了。 但是如果要搜寻资料呢?好像变得很复杂…… 我想问的是,如果我现在想做一个搜寻的功能, 比如想从资料库捞出既是同学又是仇人的人名, 有没有什麽比较简单的方法可以做到呢? 我想其实我之前用的这个编码法问题应该很大,所以有可能没办法直接捞出资料, 必须先捞出所有资料,将关系系数解码之後再去判断。 所以我想知道的是,是不是有比较有效的编码方式,可以在耗用最少栏位的情况下, 还可以兼具关系系数的扩充性,并且又方便捞资料的? --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 218.162.119.118
1F:推 pakker:一切都复杂化了 数字就是binary部用甚麽编解码 07/17 21:42
2F:→ pakker:一切都是 AND/OR operation 07/17 21:43
3F:推 leosirius:ERD: 人(M)-------(M)关系 07/17 21:46
4F:推 pakker:1.SQL可以用BIT OP 2.复杂的编码可以用SQL的UDF去做搜寻 07/17 21:46
5F:→ leosirius:接下来你应该知道怎麽做了.. 07/17 21:47
楼上两位已经点出几个我没碰过的关键字了。 其实我对 SQL 的了解仅止於 INSERT、DELETE、SELECT 等超简单的入门等级, 所以才会用这麽奇怪的方法来处理我的资料…… 谢谢两位提供的资讯,我会再研究看看的。 ※ 编辑: chweng 来自: 218.162.119.118 (07/17 21:55)
6F:推 JoeHorn:这种议题跟资料库正规化有关,去资料库板问吧~ 07/18 06:57







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:Boy-Girl站内搜寻

TOP