求数据表设计的经验,高人有更好的方法吗?

05-12-29 lijinlinlin
在设计数据表的时候常遇到这样一个问题?简单举例如下:

表1:用户表(字段如下)

ID(编号) name(姓名) camera(相机型号) ???

int String ??? ???

表2:相机型号表(字段如下)

ID(编号) camera(相机型号)

int String

假设ID都是主键,自动增加,不可编辑的。

在这个例子中,这两个表的内容都是可以自由操作的(CRUD)。

问题是:用户表怎么去设计比较合理,又方便操作???

1。表1的字段“camera”设为INT型,存放表2的ID,当查询表1要得到记录的详细信息时,用JOIN连接查询,就可以得到用户的相机型号。这样做的好处是,当表2某记录修改后,表1就不用动了;但是当表2某记录被删后,用JOIN连接查询就得不到表1的用户信息了,只查表1又得不到完整信息。

2。表1的字段“camera”设为STRING型,存放表2的“camera”,当查询时只查表1就行了;但是当表2某记录修改后,还要改表1,有些麻烦。

3。表1的字段“camera”设为INT型,存放表2的ID;然后在表1中增加一个字段“?”并设为STRING型,来存放表2的“camera”。当修改表2时,通过ID去修改表1,这样虽可省去些麻烦,但为了在查询时只查表1,还是要修改表1的“?”字段。

4。在方法3的基础上,修改了表2后不修改表1,改成定期全体UPDATE,这样造成的问题就是查询表1时得到的信息不及时。

各位高人们是怎么做的,求刺教!!!

    

1
lijinlinlin
2005-12-30 17:38
老板,给解答一下吧???

lijinlinlin
2005-12-31 20:56
都过节去了,没人了55555555

555

555

555

banq
2006-01-02 20:43
头晕,我已经反复说过,不要使用面向数据库编程方法,使用面向对象方法,你先把模型建立好,再用hibernate/iBatis之类工具实现持久化即可。

参考这个帖子:

http://www.jdon.com/jive/article.jsp?forum=62&thread=23720

kevinzhou
2006-01-06 08:07
>>>>但是当表2某记录被删后,用JOIN连接查询就得不到表1的用户信息了,只查表1又得不到完整信息。

为什么得不到表一的用户信息?不是join么

猜你喜欢
2Go 1 2 下一页