出租车服务的MySQL数据库设计[已关闭]

问题描述 投票:0回答:1

我正在为出租车预订服务创建数据库。

用户无需登录。您将需要提供姓名、电子邮件、电话、位置、日期和时间。

客户

Customer_ID INT (PK,NN,AI,UN)
firstName VARCHAR(45) (NN)
lastName VARCHAR(45) (NN)
Email VARCHAR(50) (NN)
Phone VARCHAR(20) (NN)

骑行

Ride_ID INT (PK,NN,AI,UN)
pickUpLocation TEXT(50) (NN)
Destination TEXT(50) (NN)
rideDate DATE (NN)
rideTime TIME (NN)
babyOnBoard VARCHAR(45) 

在 MySQL Workbench 中,TIME 有括号,需要一个参数。参数是什么?

文本也是如此。 TEXT 参数与 VARCHAR 相同吗?

RIDE中的外国妖精应该是什么?

RIDE 中的外键应该是rideDate 和rideTime 吗?

mysql sql database-design foreign-keys
1个回答
0
投票

TIME 有括号,需要参数,否则不接受。参数是什么?

在 MySQL v5.7 上,我能够创建一个不带括号的rideTime

列,如下所示:

CREATE TABLE test ( rideTime TIME );


TEXT 参数与 VARCHAR 相同吗?

不。来自

文档(我的重点):

TEXT[(M)] [字符集 charset_name] [COLLATE 排序规则_name]

最大长度为 65,535 (216 − 1) 个字符的 TEXT 列。如果值包含多字节字符,则有效最大长度会较小。每个 TEXT 值都使用 2 字节长度前缀存储,该前缀指示该值中的字节数。

该类型可以给出可选的长度M。如果完成此操作,

MySQL 会将该列创建为足够大以容纳 M 个字符长的值的最小 TEXT 类型。

TEXT类型包括LONGTEXT和TINYTEXT。


您认为 Ride 表中的外键应该是什么? rideDate 和rideTime?

外键引用不同表中的行。因此,假设客户和行程之间存在 1:M

关系,则自创建的外键将是 CustomerID

 表中的 
RIDE
 列,如下所示:

FOREIGN KEY (CustomerID) REFERENCES CUSTOMER(Customer_ID)

rideDate

rideTime
 不引用另一个表,因此不应将它们用作外键。


我希望这能回答您所有的问题!

© www.soinside.com 2019 - 2024. All rights reserved.