预订数据库的ER图

ER diagram for booking database

我正在创建用于预订公寓应用程序的数据库。 我有一个问题 - 允许将用户的 passwords 保留在数据库中(例如使用 BCrytp)吗? 另一个问题 - 如果 price 在几个月内可能会发生变化,那么保存 price 的最佳方法在哪里?

通常,您会将密码存储为某种加密哈希。最好是单向的,这样就无法解密了。进行身份验证时,您检查是否可以从提供的密码生成相同的哈希值;不解密存储的内容。您的散列值还应该 "salted" 与其他一些数据,这样使用相同密码的两个用户就不会拥有相同的散列值(因此,使用用户名本身很受欢迎)。

如果您的价格不同,您需要一个单独的 table 价格,其中包含开始日期和结束日期字段,以便您知道价格有效的时间段。除非,你是说每个 "booking" 可以有一个价格 - 那么你可以把价格放在预订中 table.

是的,您可以使用 Bcyrpt(特别是 py-bcrypt)来加密密码并将其存储到数据库中。 Bcrypt 散列是安全的,它被用于许多应用程序中。

此外,如果您的公寓价格在几个月内或几个月后发生变化,那么您可以在您的公寓中再添加一列(例如 Last_updated)table。当您第一次输入价格时,这会将当前日期附加到 table。现在创建一个触发器,它将在公寓价格发生变化时更改 Last_Updated 日期。这会让您知道上次更新公寓价格的时间(日期)。

您还可以再创建一个 table 来跟踪您的价格变化。 table 将具有 (apartment_id、old_price、new_price、last_updated)。使用此功能,您可以跟踪上次更新日期和旧价格。