Database 预约数据库的规范化

Database 预约数据库的规范化,database,database-design,Database,Database Design,您好,我正在开发一个活动场所的在线预订我的问题在票务模块中如果一个客户在一张票子中预订了两个功能室我不确定我的数据库是否完全正常化我只想确定请为数据库改进留下评论 create table RESERVATIONS ( PK reservation_id lname, fname, contact, email, date, timeStart, timeEnd numGuest, total) create table FUNCTIONROOMS ( PK functio

您好,我正在开发一个活动场所的在线预订我的问题在票务模块中如果一个客户在一张票子中预订了两个功能室我不确定我的数据库是否完全正常化我只想确定请为数据库改进留下评论

create table RESERVATIONS (
PK reservation_id
 lname,
 fname,
 contact,
 email,
 date,
 timeStart,
 timeEnd
 numGuest,
 total)

 create table FUNCTIONROOMS (
PK function_id,
FK functionroom_id,
FK reservation_id)

 create table FUNCTIONROOMDETAILS(
PK functionroom_id,
 functionName,
 functionPrice,
 functionStatus)
im计划进行此查询我的数据库是否正常化?还是不

select functionRoom.functionRoom_id  
from reservations, functionRoom
where reservation.reservation_id = functionRoom.reservation_id
and reservation_id = 'reservation_id'

您的表似乎没有规范化,保留中没有明显的主键

规范化是一个相当重要的话题,有几个层次的规范化形式,您可以使用您需要的规范化形式


正如Jim Garrison在评论中所说,查询无法规范化,因此您的最后一个问题没有明确的答案。

规范化与预期的查询无关;标准化有几种形式<代码>预订似乎没有列
预订\u id
。哦,你应该去接受一些答案。谢谢,我忘了添加预订id,但它已经更新了帖子:),表的
主键是什么?表之间的关系(
FOREIGN
键)是什么?这些表格代表什么?表示房间、客户、事件(您在问题中提到的)的表在哪里?@ypercube它在预订客户模块中表示我没有房间客户和事件表项目没有房间它是一个开放的地方3功能室实际上我在功能室中提到它们table@Led,没有关键点,没有约束,没有数据类型,只有一些不准确的伪代码。这甚至不是数据库设计,更不用说规范化设计了。没有人能在不知道密钥是什么以及它应该满足什么依赖关系的情况下准确地告诉你它是否规范化。我忘记添加保留id,但我一直在更新帖子,请问我的数据库是否正确规范化了?恐怕没有。有几个级别的规范化(范式)。您的数据库可能是第一个标准格式,但不是第二个标准格式,也可能是第二个标准格式,但不是第三个标准格式。在第一种情况下,您的数据库甚至不是第一种形式,现在看起来它可能是第一种形式。如果您想了解更多关于规范化的信息,请在web(wikipedia等)上查找解释,它会对您有很大帮助。如果您提供更多关于表和数据类型的详细信息,这可能会更好,正如@sqlvogel在评论中所说的那样。