我正在为出租车预订服务创建数据库。我希望您能帮助我复习我的设计,并回答我已经遇到的一些问题。首先让我解释一下逻辑。 将没有用户登录。您将需要提供姓名,姓氏,电子邮件,电话,位置,日期和时间,并且您的输入将被接受。
这是桌子。
CUSTOMER TABLE
Customer_ID INT (PK,NN,AI,UN)
firstName VARCHAR(45) (NN)
lastName VARCHAR(45) (NN)
Email VARCHAR(50) (NN)
Phone VARCHAR(20) (NN)
RIDE
Ride_ID INT (PK,NN,AI,UN)
pickUpLocation TEXT(50) (NN)
Destination TEXT(50) (NN)
rideDate DATE (NN)
rideTime TIME (NN)
babyOnBoard VARCHAR(45)
我的问题如下:
2。您认为“乘车外键”表应该是什么? rideDate和rideTime?
如果您还有其他建议,希望听听他们的意见。
这是我的第一个数据库,因此请考虑到这一点。
答案 0 :(得分:0)
TIME有括号并需要一个参数,否则将不被接受。有哪些参数?
在MySQL v5.7上,我able to创建了一个rideTime
列,但没有这样的括号:
CREATE TABLE test (
rideTime TIME
);
TEXT参数是否与VARCHAR相同?
不。来自documentation(我的重点):
TEXT [(M)] [字符集字符集名称] [收集排序规则名称]
一个TEXT列,最大长度为65,535(216-1)个字符。如果该值包含多字节字符,则有效最大长度会更少。每个TEXT值都使用2字节长的前缀存储,该前缀表示值中的字节数。
可以为此类型指定一个可选的长度M。如果这样做, MySQL将列创建为最小的TEXT类型,其大小足以容纳M个字符长的值。
TEXT类型包括LONGTEXT和TINYTEXT。
您认为“乘车外键”表应该是什么? rideDate与rideTime?
外键引用不同表中的一行。因此,假设“客户”与“乘车者”之间的比例为1:M relationship,那么将生成的外键将是CustomerID
表中的RIDE
列,如下所示:
FOREIGN KEY (CustomerID) REFERENCES CUSTOMER(Customer_ID)
rideDate
和rideTime
并未引用其他表,因此不应将它们用作外键。
我希望这能回答您所有的问题!