“政客可以从许多公民那里得到金钱,而同一公民可能会向多个政客捐款”

我想知道这是否会是多对多的关系,是否会意味着该模型中包含三个实体:公民,政治人物以及诸如资本之类的第三实体

最佳答案

您是正确的,这是一个多对多关系,链接表本身也是一个完整实体。政治家,公民和捐赠。

Politicians
    ID
    Name
    ...

Citizens
    ID
    Name
    ...

Donations
    ID
    CitizenID
    PoliticianID
    Amount
    Timestamp


商业交易的任何记录都遵循相同的模式:ThingsForSale,客户,购买。

所有这些都是您要搜索的内容,因此所有这些都有自己的唯一ID,甚至链接表也是如此。有人可以多次购买同一件商品,因此CitizenID,PoliticianID没有唯一的限制。实际上,时间戳对区分多次购买非常有帮助。

您还希望避免使用CASCADE ON DELETE之类的东西,因为购买记录通常应永久存在。

关于mysql - SQL中的数据建模,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35730754/

10-09 22:59