【问题标题】:Database Design - Loaner System - Customer loaning multiple items数据库设计 - 借出系统 - 客户借出多个项目
【发布时间】:2012-05-06 05:35:54
【问题描述】:

我正在实施一个贷款人系统,并想找出最有效的/数据库标准结构技术来用于贷款记录。让我从基础开始:

我有两张桌子:

客户记录(id、f_name、l_name、p_number)

Loaner_Pool(id、型号、serial_n、状态)

这个想法是借用池由一系列设备组成,例如:鼠标/键盘/笔记本电脑/电池/相机/等。状态表示项目是否已预订。 我想知道的是如何设计存放客户个人贷款的贷款记录表。我有两个这样做的想法

想法 1

有一个记录条目,其中有一个名为“gear_list”的列,该列将保存客户预订的所有装备的 ID,用“,”之类的符号分隔,例如:

表格:贷款(id、customer_id、gear_list、日期、状态)

贷款示例

贷款[102, 30001, "23, 34, 949, 293", 时间戳, "out"]

有了这个想法,我的参赛人数一直很低。但是,我必须每次在 PHP 中处理“gear_list”列,以便分离借出的齿轮的 id 值,然后执行单独的 SELECT 获取数据。

想法 2

将客户想要借出的每件商品作为单独的条目放在表格中。该表看起来与想法 1 相同,但“gear_list”将只为每个借出的项目保存一个 id。

表格:贷款(id、customer_id、loan_pool_id、日期、状态)

贷款示例: 贷款[102, 30001, "23", 时间戳, "out"]

贷款[102, 30001, "34", 时间戳, "out"]

贷款[102, 30001, "949", 时间戳, "out"]

贷款[102, 30001, "293", 时间戳, "out"]

对于这个想法,在处理了许多贷款后,记录的数量会增加很多。列“gear_list”变为“loan_pool_id”,因为它只包含一个 id。好处是能够在“loan_pool”中只有一个 id 以便于操作/报告。

有没有更好的处理方式?

提前致谢!

【问题讨论】:

    标签: php sql database


    【解决方案1】:

    您的第二个选择是关系数据库系统的正确选择。

    您正在确定数据库需要存储的关键实体,然后使用正确的属性设计它们。

    第一种方法是在一个字段中存储多个内容,这通常表明设计不佳。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-05-27
      • 2012-08-04
      • 2011-01-28
      • 1970-01-01
      • 2012-02-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多