Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 图书馆管理系统数据库设计(不同用户的授权和订单日期的保存)_Mysql_Sql_Database_Entity Relationship - Fatal编程技术网

Mysql 图书馆管理系统数据库设计(不同用户的授权和订单日期的保存)

Mysql 图书馆管理系统数据库设计(不同用户的授权和订单日期的保存),mysql,sql,database,entity-relationship,Mysql,Sql,Database,Entity Relationship,在数据库课程的作业中,我必须为一个图书馆管理系统做一个数据库设计。项目描述中有两个单独的部分我不理解 首先,我们有不同的用户类型,称为库管理器(lm)和常规用户(ru)。这两种类型的用户也有不同的特性。例如,ru.s只能看到自己的借阅信息,而lm.s可以看到所有用户的借阅信息。此外,ru.s无权向系统中添加书籍,而lm.s可以向系统中添加新书。我的第一个问题是与我刚才列出的授权相关的属性是否可以保存在数据库中。或者这些授权功能是在实现网站时需要为每种用户类型创建并添加到不同页面的功能吗?如果要在

在数据库课程的作业中,我必须为一个图书馆管理系统做一个数据库设计。项目描述中有两个单独的部分我不理解

首先,我们有不同的用户类型,称为库管理器(lm)和常规用户(ru)。这两种类型的用户也有不同的特性。例如,ru.s只能看到自己的借阅信息,而lm.s可以看到所有用户的借阅信息。此外,ru.s无权向系统中添加书籍,而lm.s可以向系统中添加新书。我的第一个问题是与我刚才列出的授权相关的属性是否可以保存在数据库中。或者这些授权功能是在实现网站时需要为每种用户类型创建并添加到不同页面的功能吗?如果要在网站上确定这些问题,我如何确保没有ru发送未经授权的查询

我不明白的第二部分是,在保存俄罗斯的借阅信息时,我是否需要保存三个单独的信息,例如“借阅图书的日期”、“应归还图书的日期”和“归还图书的日期”?因为每本书的借阅期是固定的,设置为1个月。所以对我来说,只记录这本书的借阅日期就足够了。因为在这个日期加上1个月,就可以计算出还书的日期了


此外,即使我认为我应该保留一个记录的日期,这本书被带回,这将是无效的,当用户只是借用一本书,而不是返回它。据我所知,在数据库中保留空部分意味着糟糕的设计。因此,我无法理解如何解决这些问题,提前感谢您的帮助。

是的,您可以在数据库中保留授权所需的属性,或者可以使用在其他地方实现的功能,如代理服务器、web服务器或现有库(如pam等)。这些都是设计选择,可能存在权衡

是的,如果您正在学习数据库建模,我不会存储冗余信息。也就是说,如果将固定的1个月改为2个月,而您可能有一些未完成的书籍,会发生什么


一种完全不同的建模方法是记录发生的事件。(今天,用户a,借来的,书b),(上周五,用户a,归还的,书c)等等。然后您构建视图,或反映您希望如何查看数据的物化表。这被称为事件来源,如果您将应用程序的读写部分拆分,则我们希望归还贷款。null没有什么问题,尤其是当期望的比率为1时。