作者danielguo (Daniel Guo)
看板Database
标题Re: [请益] 这种资料的纪录用怎样的资料结构比较好?
时间Tue Apr 26 01:13:35 2011
※ 引述《JYHuang (夏天到了,冷不起来了说)》之铭言:
: 主要结构大至是这样
: 主元件 (object)
: ID 名称 ..
: A xxx
: B yyy
: 零件(parts)
: ID 名称 规格 ...
: 001 p-1
: 002 p-2
: 003 p-3
: 零件是属於主元件的配件,会被变更到不同的主元件上。也会新增或淘汰。
: 目前想要纪录零件的使用资料,想到的有两种纪录方式
: 1:使用纪录 (rec)
: 纪录ID 日期 时数(min) 主元件ID 零件ID
: 001 20110401 50 A 001
: 001 20110401 50 A 002
: 001 20110401 50 A 003
: 002 20110402 100 B 002
: 002 20110402 100 B 003
: 这样的话,要统计零件被使用的资料会比较方便。
: 可是如果零件一多的话,资料量会比较庞大。资料的编辑也会比较麻烦。
: 2:使用纪录 (rec)
: 纪录ID 日期 时数(min) 主元件ID 零件集合
: 001 20110401 50 A 001,002,003
: 002 20110402 100 B 002,003
: 这样资料量虽然会比较少,编辑时把零件集合那里读出来再盖过去就可以了。
: 可是要统计零件的使用纪录上似乎会比较麻烦。
多值栏位, 不建议使用
: 3:使用纪录 (rec) + 集合资料(collect)
: 纪录ID 日期 时数(min) 零件集合ID
: 001 20110401 50 01
: 002 20110402 100 02
: 集合ID 主元件ID 零件ID
: 01 A 001
: 01 A 002
: 01 A 003
: 02 B 002
: 02 B 003
: 这样的话,统计会方便点、资料量也会比较少。
: 可是集合的编辑似乎会比较麻烦点,可能会变成同样的集合重复的出现。
: 看起来也只是把1的方法更正规化一点。
: 请问是否还可以有更理想的资料结构呢?
3 比较适合, 不过这边栏位不对, 应该是
纪录ID 日期 时数(min) 主元件ID 零件集合ID
001 20110401 50 A 01
002 20110402 100 B 02
集合ID 零件ID
01 001
01 002
01 003
02 002
02 003
设定主键为 (集合ID, 零件ID), 这样便一定不会重复 (当然应用程式应该先检查)
3 更正了之後基本上和 2 储存的资料量相同
除非有其他额外栏位要考虑, 不然应该这样用没错
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 71.93.105.54
※ 编辑: danielguo 来自: 71.93.105.54 (04/26 01:13)